我获取的文件夹是这样子的
下面 这篇文章,就 一句话 就很好的解决了 文件按照我 比如,指定 创建的时间 ,或者上次 修改的时间,来排序。
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,再转换为时间变量,再排序。