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

 

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

C# 获得文件夹文件但是不按照创建时间或者修改时间来排序的问题_第1张图片C# 获得文件夹文件但是不按照创建时间或者修改时间来排序的问题_第2张图片

 

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

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

 

二更:

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

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

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

 

三更:

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

        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,再转换为时间变量,再排序。

 

 

你可能感兴趣的:(C# 获得文件夹文件但是不按照创建时间或者修改时间来排序的问题)