在 C# 中,使用 Directory.GetFiles()
方法可以获取指定目录下的所有文件。但是,这个方法返回的文件列表顺序可能与 Windows 资源管理器中显示的顺序不同。要获取与 Windows 资源管理器中顺序相同的文件列表,可以使用 SearchOption
枚举和 FileInfo
类来实现。
以下是一个示例代码:
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 资源管理器中顺序相同的文件列表了。
领取专属 10元无门槛券
手把手带您无忧上云