首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C# 如何使用 Directory.GetFiles() 获取与 Windows 资源管理器中顺序相同的文件?

在 C# 中,使用 Directory.GetFiles() 方法可以获取指定目录下的所有文件。但是,这个方法返回的文件列表顺序可能与 Windows 资源管理器中显示的顺序不同。要获取与 Windows 资源管理器中顺序相同的文件列表,可以使用 SearchOption 枚举和 FileInfo 类来实现。

以下是一个示例代码:

代码语言:csharp
复制
using System;
using System.IO;
using System.Linq;

class Program
{
    static void Main(string[] args)
    {
        string path = @"C:\your\directory\path";
        var files = GetFiles(path);

        foreach (var file in files)
        {
            Console.WriteLine(file.FullName);
        }
    }

    static FileInfo[] GetFiles(string path)
    {
        return new DirectoryInfo(path)
            .GetFiles("*", SearchOption.AllDirectories)
            .OrderBy(file => file.FullName.Length)
            .ThenBy(file => file.FullName)
            .ToArray();
    }
}

在上面的代码中,GetFiles() 方法使用 DirectoryInfo 类获取指定目录下的所有文件,包括子目录中的文件。SearchOption.AllDirectories 参数表示搜索所有子目录。然后,使用 OrderBy() 方法按文件名长度排序,再使用 ThenBy() 方法按文件名排序。最后,将排序后的文件列表转换为 FileInfo 数组并返回。

这样,你就可以获取与 Windows 资源管理器中顺序相同的文件列表了。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

简述如何使用Androidstudio对文件进行保存和获取文件数据

在 Android Studio ,可以使用以下方法对文件进行保存和获取文件数据: 保存文件: 创建一个 File 对象,指定要保存文件路径和文件名。...使用 FileOutputStream 类创建一个文件输出流对象。 将需要保存数据写入文件输出流。 关闭文件输出流。...使用 FileInputStream 类创建一个文件输入流对象。 创建一个字节数组,用于存储从文件读取数据。 使用文件输入流 read() 方法读取文件数据,并将其存储到字节数组。...System.out.println("文件数据:" + data); 需要注意是,上述代码 getFilesDir() 方法用于获取应用程序内部存储目录,可以根据需要替换为其他存储路径。...这些是在 Android Studio 中保存和获取文件数据基本步骤。

41410
  • Directory.GetFiles 传入搜索字符串(Search Pattern)神奇规则

    如果使用 ? 匹配文件,那么文件扩展名必须完全相同才能匹配上 如果使用 * 匹配文件,那么文件扩展名以此开头都能匹配上 第 5 行,为什么明明文件名里没有 1 却也能匹配上呢?...为了兼容老程序,Windows 会有一个算法让 8.3 文件文件名对应,具体对应方法可以参考维基百科:8.3文件名 - 维基百科,自由百科全书。...其他说明 需要注意是,这个匹配规则只适用于 Windows API 调用,不适用于用户在文件资源管理器搜索操作。搜索操作里没有这么奇怪规则,单单就是字符串包含以及通配符而已。...本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。...欢迎转载、使用、重新发布,但务必保留文章署名 吕毅 (包含链接: https://blog.walterlv.com ),不得用于商业目的,基于本文修改后作品务必以相同许可发布。

    72310

    在 csproj 文件使用系统环境变量值(示例将 dll 生成到 AppData 目录下)

    Windows 资源管理器使用 %var% 来使用环境变量,那么我们能否在 Visual Studio 项目文件使用环境变量呢? 本文介绍如何在 csproj 文件使用环境变量。...遇到问题 在 Windows 资源管理器,我们可以使用 %AppData% 进入到用户漫游路径。...资源管理器可以直接输入以上文字进入对应目录(当然需要确保存在)。...实际上,Visual Studio 是天然支持环境变量。直接使用 MSBuild 获取属性语法即可获取环境变量值。 也就是说,使用 $(AppData) 即可获取到其值。...你可以阅读我另一篇博客了解更多关于输出路径问题: 如何更精准地设置 C# / .NET Core 项目的输出路径?

    43950

    C# 写脚本 如何输出文件夹内所有文件

    大部分在 Windows脚本都是使用 bat 或 cmd 写,这部分脚本对我来说可读性不好。这个可读性也是很主观,对我来说用 C# 写脚本可读性很强,但是换个小伙伴就不是了。...在 .NET Core 下 C# 可以通过 dotnet run 运行代码起来,此时特别适合用来写脚本 我需要输出一个文件夹里面的根目录所有文件,输出一个文件顶层文件方法可以使用 Directory.GetFiles...拿到文件顶层文件,然后遍历输出。...,十分简单,通过 dotnet run 命令就可以跑起来 额外,在 Directory.GetFiles 可以输入通配符进行选择输出文件 foreach (var file...} 如上面代码就输出文件夹里面后缀是 .enbx 文件 如果想要遍历所有的子文件文件,可以通过加上 SearchOption.AllDirectories 参数 foreach

    78010

    Windows 系统文件资源管理器命令行参数(如何降权打开程序,如何选择文件

    Windows 系统文件资源管理器命令行参数(如何降权打开程序,如何选择文件) 大多数用户还是习惯使用 Windows 自带文件资源管理器来管理文件,于是我们可以利用它命令行参数来帮助我们做一些之相关交互...本文会以实际例子来说明如何使用 explorer.exe 命令行参数。...不过,这个时候是间接使用文件资源管理器打开文件,效果跟我们直接在文件资源管理器双击打开这个文件效果是一样。...不过,有几点需要注意: 如果用来降权,那么只会降到文件资源管理器同级别的权限 而文件资源管理器是什么权限在 Windows 7 上和 Windows 8/8.1/10 上不同 Windows...C#/.NET 启动进程时所使用 UseShellExecute 设置为 true 和 false 分别代表什么意思?

    2K20

    WPF 获取本机所有字体拿到每个字符宽度和高度

    本文主要采用 GlyphTypeface 类尝试获取每个字符宽度和高度值,尽管这个方法和最终 WPF 布局使用文本宽度和高度是不相同,但是依然可以作为参考 获取系统字体文件文件 系统字体文件夹放在...@"C:\Windows\Fonts" 本文不讨论用户系统盘放在其他盘里面 使用 Directory.GetFiles 可以获取所有字体文件 var fileList = Directory.GetFiles...(@"C:\Windows\Fonts", "*.ttf"); 通过 *.ttf 可以限定只获取 ttf 文件 创建 GlyphTypeface 对象 通过 Uri 传入文件路径可以创建...需要注意是一个字体文件也许会包含多个不同 FontFamily 因此 FontFamily 创建时候还需要传入名字进去 foreach (var font in fileList...上面代码获取 glyph 就可以使用和上文相同方法获取文本字符宽度

    2.1K20

    C# 用IrisSkin4.dll美化你WinForm

    将IrisSkin4.dll动态文件导入当前项目引用。具体操作为:解决方案资源管理器->当前项目->引用->右键->添加引用,找到IrisSkin4.dll文件,然后加入即可。...建议,最好把IrisSkin4.dll文件放在当前项目\bin\Debug文件。 2....然后把IrisSkin4.dll文件添加到VS2010工具箱:视图->工具箱->右键->选择项->浏览找到IrisSkin4.dll文件(文件最好放在当前项目\bin\Debug文件)按确定,控件就添加到工具箱中了...把皮肤目录.ssk文件复制到当前项目\bin\Debug文件,ssk文件可以根据需求自己选择. 4. 再在项目中调用.ssk皮肤文件。...() (Windows 窗体设计器生成代码)定义                                this.skinEngine1 = new Sunisoft.IrisSkin.SkinEngine

    1.5K20

    在 SublimeText 使用 dotnet 编译 C# 项目

    在 SublimeText 搭建 C# 环境可以找到博客基本都是使用 csc 进行构建,而我期望在 dotnet 下编译整个项目。...通过 dotnet 编译整个项目可以解决编译大项目时需要打开一个控制台降低效率 用 dotnet 编译优点是我可以在 Ubuntu 系统使用 SublimeText 编写和编译 C# 项目。...例如我想写一个 C# 程序,我想要在 SublimeText 通过 ctrl+B 进行编译然后运行,而原本在 Windows 下我可以同步我配置,在这里就不能使用,原因是在 Windows 下通过 csc...编译文件 而通过 dotnet 编译,可以利用跨平台 dotnet 技术,在 Ubuntu 下也使用相同程序和快捷键开发 在使用之前,请先安装好 dotnet 程序,安装方法请看 https:/...([0-9]*)", "working_dir": "${file_path}" } 有搜 将Sublime Text配置为C#代码编辑器小伙伴会发现和其他小伙伴不同是我将 shell_cmd 修改为自己写程序

    1.1K20

    Spread for Windows Forms快速入门(1)---开始使用Spread

    在新建工程对话框,在工程类型区域内,选择开发语言环境相匹配工程类型。例如,在工程类型列表中选择Visual C#工程。 4. 在新建工程对话框, a....在地址框使用指定路径为地址路径,或者点击浏览改变路径为一个新目录。 d. 点击确定。 如果你工程不显示解决方案资源管理器,从视图菜单,选择解决方案资源管理器。 5....下面我们以C#为例学习使用代码来定制Spread,在此过程逐步了解Spread各类API。 通过对快速入门系列文章学习,你可以轻松使用Spread完成报表开发: ?...你也可以在一个独立窗口中查看联机帮助文件,在开始菜单中选择所有程序->GrapeCity->Spread for Windows Forms 5文版,再选中Spread帮助文档。...2)查看在线文档 在线文档地址如下:http://www.gcpowertools.com.cn/docs/spreadwin5help/ 内容联机帮助基本相同,但你无需安装Spread即可进行阅读和学习

    2.6K100

    .NET周刊【1月第3期 2024-01-24】

    例子展示了如何在新线程获取_asyncLocal值,源码分析揭示了值是如何存储和传递。...文中介绍了Windows调试工具集,包括用户态调试工具NTSD、CDB和WinDbg,以及内核态调试器KD。这些工具使用相同调试引擎,但有不同界面和用途。...最后,展示了如何C#使用Elasticsearch,包括连接、插入、更新、删除、获取和搜索数据代码示例。...删除 Windows 资源管理器不存在文件(第 1 部分)- Qiita https://qiita.com/miswil/items/b97dd4914a335fa21790 说明如何将非真实文件数据从应用程序传递到放置目标...删除 Windows 资源管理器不存在文件(第 2 部分)- Qiita[2] 删除 Windows 资源管理器不存在文件(第 3 部分)- Qiita[3] 删除 Windows 资源管理器不存在文件

    16210

    7-Zip 16 DLL 劫持

    Microsoft Windows 环境变量扩展问题导致远程 DLL 劫持 攻击向量:7-ZIP v.16 7-ZIP v.16 和可能使用 HTML 帮助系统其他软件容易出现远程 DLL 劫持问题,...\%systemroot%\system32\hhctrl.ocx' 存在,它将被加载 由于不安全搜索顺序,而不是合法“hhctrl.ocx”。这允许任意代码执行。...\%systemroot%\system32”并将名为“hhctrl.ocx” DLL 放在“system32”文件。...将有效 ZIP / 7Z 存档放在“7z”文件,并将 UNC 路径/链接发送到目标。...目标通过 Windows 资源管理器文件资源管理器)访问远程共享并打开存档(使用 7-ZIP)然后继续单击“帮助”然后单击“内容 (F1)”或按“F1”键以触发漏洞 并运行任意代码。

    39820

    C#文件文件夹输入输出流代码

    // 如果你指向copy目标文件下面的文件而不包含目录请使用下面的方法 // string[] fileList = Directory.GetFiles(srcPath); string...// 如果你指向Delete目标文件下面的文件而不包含目录请使用下面的方法 // string[] fileList = Directory.GetFiles(aimPath);...strFromPath.LastIndexOf("\\") + 1,strFromPath.Length - strFromPath.LastIndexOf("\\") - 1); 21 22 //如果目标文件没有源文件夹则在目标文件创建源文件夹...DirectoryInfo[] ZiPath = dirInfo.GetDirectories(); 43 for (int j = 0;j < ZiPath.Length;j++) 44 { 45 //获取所有子文件夹名...46 string strZiPath = strFromPath + "\\" + ZiPath[j].ToString(); 47 //把得到文件夹当成新文件夹,从头开始新一轮拷贝

    73810

    Unity3d 制作一个立体旋转相册

    接着选择 Cube 将图片 s1 拖放到 Cube 上,大概效果就是在 Cube Mesh Renderer 材料元素0显示了拖进去 s1 元素,同时可以看到 Cube 被 S1 贴图 ?...切换贴图内容 新建一个 C# 脚本,命名是 MeshPainter 将在这里读取本地图片,按照文件图片,一张张播放 在 C# 获取一个文件夹里面的所有文件方法很简单,只需要使用 Directory.GetFiles...在脚本 Start 方法里面尝试获取图片,获取之后存放在本地字段 void Start() { var imageList = Directory.GetFiles(...if (Input.GetButtonDown("Fire1")) { } } 新建一个字段用来存放当前是第几次点击,对应文件文件...new Texture2D(1920, 1080); 通过 LoadImage 方法可以加载图片,参数是一个 byte 数组,在 C# 里面读取文件作为 byte 数组方法可以使用 System.IO.File.ReadAllBytes

    1.7K20

    dotnet sln

    如果省略此参数,此命令会搜索当前目录来获取一个解决方案文件。 如果未找到解决方案文件或找到多个解决方案文件,则该命令将失败。 选项 -?|-h|--help 打印出有关如何使用命令说明。...如果省略此参数,此命令会搜索当前目录来获取一个解决方案文件。 如果未找到解决方案文件或找到多个解决方案文件,则该命令将失败。 选项 -?|-h|--help 打印出有关如何使用命令说明。...|-h|--help 打印出有关如何使用命令说明。 --in-root 将项目放在解决方案根目录下,而不是创建解决方案文件夹。 无法 -s|--solution-folder 一起使用。...|-h|--help 打印出有关如何使用命令说明。...使用 globbing 模式(仅限 Windows PowerShell)将多个 C# 项目添加到解决方案: dotnet sln todo.sln add (ls -r **/*.csproj)

    70210

    可视化数据库设计软件有哪些_数据库可视化编程

    学习目标: C#数据库应用程序开发环境构成 服务器资源管理器 类型化数据集 创建简单数据库应用程序 水晶报表 Notes: 类型化数据集 利用服务器资源管理器建立数据连接 利用服务器资源管理器可执行任务如下...如果数据源为 IBindingListView,并支持高级排序,则获取用于排序和排序顺序信息多个列名。...(1)添加删除字段 在“编辑列”对话框左侧显示数据表字段名,用“添加”“移除”按钮可添加或删除字段。 (2)改变字段位置 单击“改变字段位置”按钮,可改变字段在数据表控件位置顺序。...记录行显示样式是通过单元格外观设置实现,所以其编辑界面“CellStyle生成器”界面相同,参见图5-26。...设置方法RowsDefaultCellStyle属性相同

    6.7K40

    牛啊后续:如何一行C#代码实现解析类型Summary注释(可用于数据字典快速生成)

    这样就可以让所有实体类summary信息被写入到输出目录下。如果有多个xml文件也没关系,下面的包已经实现自动解析多个xml文件功能,只选取匹配那个。...Net如何在5分钟内快速实现物联网扫码器通用扫码功能?...https://mp.weixin.qq.com/s/-5VuLAS6HlElgDQXRY9-BQ 1.0.6版本: .NET实现获取NTP服务器时间并同步(附带Windows系统启用NTP服务功能)...https://mp.weixin.qq.com/s/vMW0vYC-D9z0Dp6HFSBqyg 1.0.5版本: C#使用P/Invoke来实现注册表增删改查功能 https://mp.weixin.qq.com.../s/LpsjBhDDzkwyLU_tIpF-lg 1.0.3版本: C#实现图片转Base64字符串,以及base64字符串在Markdown文件内复原演示 https://mp.weixin.qq.com

    9410

    VSCode10个巧妙技巧

    但是,默认情况下,建议仅从当前文档或相同类型打开文档中提供。 最近引入一项功能允许您从所有当前打开文件查找建议。...将 editor.wordBasedSuggestionsMode 配置选项设置为 allDocuments 以从每个已打开文件获取建议,而不仅仅是您当前正在编辑文件或具有相同扩展名打开文件。...如果您有包含应用程序类型存根文件,但您正在编辑文件不共享文件扩展名,这将非常方便。 从所有打开文档启用 VS Code 单词建议。建议“db_context”来自一个打开代码文件。...使用配置文件管理工作流 VS Code 可以处理任意数量不同语言和文件类型。但您可能不希望为每个语言和文件类型使用相同自定义设置。...Python 项目需要与 Java 或 C# 项目不同自定义设置。为此,VS Code 允许您使用 配置文件(Profile) 将各种自定义设置组合在一起,并将其保存在一个通用名称下。

    14110

    android sdk根目录,Android SDK位置

    原版: 在Android Studio单击此图标以获取Android SDK管理器 您Android SDK位置将在此处 luckyging3r answered 2019-07-17T22:...:( return null; } 我需要这个,因为我正在编写一个C#程序扩展,以便Android Studio / Gradle一起使用。 希望其他人会发现这种方法很有用。...ArtemGr answered 2019-07-17T22:44:55Z 2 votes 您是否尝试通过Windows资源管理器找到此文件夹? 可以看到吗?...也许该文件夹是隐藏(默认安装 – 它被Windows操作系统隐藏在users文件)。...只需检查您是否可以在Windows资源管理器查看隐藏文件夹(通过Windows控制面板设置&gt;外观和个性化&gt;文件夹选项&gt;显示隐藏文件文件夹。

    5.1K20
    领券