C#中Directory.GetFiles如何依文件创建时间先后顺序排序?
|
admin
2018年2月1日 18:40
本文热度 10909
|
文件夹下有N个 *.txt文件, 要按文件创建时间先后依次获取他们的内容,但是 Directory.GetFiles 这个方法是按名称排序的。。。。有没有办法或其他方法可以按文件的创建时间先后排序读取他们的内容呢?
可以,用这个即可:
private static void test()
{
string[] s = Directory.GetFiles(@"*.txt");
s.OrderBy(ss => new FileInfo(ss).CreationTime);
}
获取的就是按照文件名称数组,按照创建时间降序排序的。
该文章在 2018/2/1 18:40:58 编辑过
| |
全部评论2 |
|
admin
2018年2月1日 18:41
引入命名空间
using System.IO;
using System.Collections;
public class FileComparer : IComparer
{
int IComparer.Compare(Object o1, Object o2)
{
FileInfo fi1 = o1 as FileInfo;
FileInfo fi2 = o2 as FileInfo;
return fi1.CreationTime.CompareTo(fi2.CreationTime);
}
}
public class MyClass
{
public FileInfo[] GetFiles(string path)
{
DirectoryInfo di = new DirectoryInfo(path);
FileInfo[] files = di.GetFiles();
FileComparer fc = new FileComparer();
Array.Sort(files, fc);
return files;
}
}
使用
FileInfo[] a = new MyClass().GetFiles(@"D:\data"); 该评论在 2018/2/1 18:41:43 编辑过
|
|
admin
2018年2月1日 18:42
public static string[] GetLatestFiles(string Path, int count)
{
var query = (from f in Directory.GetFiles(Path,"*.xml")
let fi = new FileInfo(f)
orderby fi.CreationTime descending
select fi.FullName).Take(count);
return query.ToArray();
} 该评论在 2018/2/1 18:42:14 编辑过
|