C# 获得文件夹文件但是不按照创建时间或者修改时间来排序的问题

我获取的文件夹是这样子的

下面 这篇文章,就 一句话 就很好的解决了 文件按照我 比如,指定 创建的时间 ,或者上次 修改的时间,来排序。

C# 利用Sort方法对FileInfo[] 进行时间或名字排序_暗色调的博客-CSDN博客

二更:

发现 按 上面 那个 Cratintime 来还是 不对,最后还是 按照  LastWriteTime 来排序 勉强对,但这不能 排除 后续有人 改了 某个文件造成 排序 错乱。

下文有 按照 名字,创建时间,还有 修改时间 等等的 顺序 和 倒序 排序,值得参考!

https://www.cnblogs.com/soundcode/p/4885723.html

扫描二维码关注公众号,回复: 11843129 查看本文章

三更:

发现还是不对,那么自己就重写一个 将名字组合,变换排序的 函数

        private void SortAsFileCreationTime(ref FileInfo[] arrFi)
        {
            Array.Sort(arrFi, delegate (FileInfo x, FileInfo y)
            {
                DateTime dtX = Convert.ToDateTime(x.Name.Split(new string[] { "_data" }, StringSplitOptions.None)[0]);
                DateTime dtY = Convert.ToDateTime(y.Name.Split(new string[] { "_data" }, StringSplitOptions.None)[0]);
                return dtX.CompareTo(dtY);
                //return y.CreationTime.CompareTo(x.CreationTime);
            });
            //Array.Sort(arrFi, delegate (FileInfo x, FileInfo y) { return x.LastWriteTime.CompareTo(y.LastWriteTime); });
            //Array.Sort(arrFi, delegate (FileInfo x, FileInfo y) { return x.Name.CompareTo(y.Name); });//顺序排列
            //Array.Sort(arrFi, delegate (FileInfo x, FileInfo y) { return y.Name.CompareTo(x.Name); });//倒序排列
        }

文件 名字 如: 2016-12-21_data.log,我 split 得到 2016-12-21,再转换为时间变量,再排序。

猜你喜欢

转载自blog.csdn.net/txpp520/article/details/107733665