System.IO.Directory.GetFiles 如何跟文件排序(最好按修改时间)?

sarah19820826 2005-10-14 10:19:23
因为这个目录下的文件有点多.大约几千个,全部选出来要大量的时候.所以我想只选最后修改的文件(比如选20个,这样可能就快多了)


谢谢了:)
...全文
1015 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jnwfh 2005-12-09
  • 打赏
  • 举报
回复
DirectoryInfo di = new DirectoryInfo(FromPath.Text);
FileSystemInfo[] dirs = di.GetFiles("eil????1.Awx");
IComparer timeComparer = new TimeComparer();
Array.Sort(dirs, timeComparer);



//
class TimeComparer : IComparer
{
public int Compare(object info1, object info2)
{
FileInfo fileInfo1 = info1 as FileInfo;
FileInfo fileInfo2 = info2 as FileInfo;
DateTime fileTime1 = fileInfo1 == null ? new DateTime() : fileInfo1.LastWriteTime;
DateTime fileTime2 = fileInfo2 == null ? new DateTime() : fileInfo2.LastWriteTime;
if (fileTime1 > fileTime2) return -1;
if (fileTime1 < fileTime2) return 1;
return 0;
}
}
dombo 2005-10-15
  • 打赏
  • 举报
回复
对的,默认的顺序是随机的,我也正为这个问题所困扰。
sarah19820826 2005-10-14
  • 打赏
  • 举报
回复
用 System.IO.File.GetLastWriteTime(path) 方法取出时间来再排一下序,有点花时间,也试过一下,跟不排序全部读回来时间差不多)
默认不是以文件名排序的.我测试过.好像是随机
yezie 2005-10-14
  • 打赏
  • 举报
回复
默认是文件名排序的吧
lldwolf 2005-10-14
  • 打赏
  • 举报
回复
用 System.IO.File.GetLastWriteTime(path) 方法取出时间来再排一下序好了

111,130

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧