相关疑难解决方法(0)

对Directory.GetFiles()进行排序

System.IO.Directory.GetFiles()返回一个string[].返回值的默认排序顺序是什么?我是按名字假设,但如果是这样的话,目前的文化对它有多大影响呢?你能把它改成创建日期吗?

更新: MSDN指出.Net 3.5不保证排序顺序,但2.0版本的页面根本没有说什么,这两个页面都不会帮助您按创建或修改时间等方式进行排序.一旦你有了数组(它只包含字符串),这些信息就会丢失.我可以构建一个比较器来检查它获得的每个文件,但这意味着重复访问文件系统,大概是.GetFiles()方法已经这样做了.似乎非常低效.

.net .net-2.0

64
推荐指数
5
解决办法
14万
查看次数

如何按名称对文件列表进行排序以匹配Windows资源管理器显示它们的方式?

假设我按名称在资源管理器中对文件列表进行了排序,如下所示:

2009-06-02-4.0.9.txt
2009-06-02-4.0.10.txt
2009-06-02-4.0.11.txt
2009-06-02-4.0.12.txt

我有一个FileInfo Comparer,它按名称对FileInfo对象数组进行排序:

    class FileInfoComparer : IComparer<FileInfo> {
        public int Compare(FileInfo x, FileInfo y) {
            return string.Compare(x.FullName, 
                                  y.FullName, 
                                  StringComparison.OrdinalIgnoreCase);
        }
    }
Run Code Online (Sandbox Code Playgroud)

使用此Comparer从上面对相同的文件列表进行排序产生:

2009-06-02-4.0.10.txt
2009-06-02-4.0.11.txt
2009-06-02-4.0.12.txt
2009-06-02-4.0.9.txt

这是有问题的,因为订单非常重要.

我想有一种模仿Windows在C#代码中所做的事情的方法,但我还没有找到办法.任何帮助表示赞赏!

谢谢!

.net c# sorting

3
推荐指数
1
解决办法
4260
查看次数

标签 统计

.net ×2

.net-2.0 ×1

c# ×1

sorting ×1