任何人都拥有良好的资源或在C#中为FileInfo数组提供自然顺序排序的样本?我正在实现IComparer我的各种界面.
System.IO.Directory.GetFiles()返回一个string[].返回值的默认排序顺序是什么?我是按名字假设,但如果是这样的话,目前的文化对它有多大影响呢?你能把它改成创建日期吗?
更新: MSDN指出.Net 3.5不保证排序顺序,但2.0版本的页面根本没有说什么,这两个页面都不会帮助您按创建或修改时间等方式进行排序.一旦你有了数组(它只包含字符串),这些信息就会丢失.我可以构建一个比较器来检查它获得的每个文件,但这意味着重复访问文件系统,大概是.GetFiles()方法已经这样做了.似乎非常低效.
我有这个代码列出目录中的所有文件.
class GetTypesProfiler
{
static List<Data> Test()
{
List<Data> dataList = new List<Data>();
string folder = @"DIRECTORY";
Console.Write("------------------------------------------\n");
var files = Directory.GetFiles(folder, "*.dll");
Stopwatch sw;
foreach (var file in files)
{
string fileName = Path.GetFileName(file);
var fileinfo = new FileInfo(file);
long fileSize = fileinfo.Length;
Console.WriteLine("{0}/{1}", fileName, fileSize);
}
return dataList;
}
static void Main()
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
我需要根据文件大小或字母顺序打印出文件信息.如何从Directory.GetFiles()中对结果进行排序?