C#用foreach确定遍历某一文件夹下的文件顺序
如题,foreach(FileSystemInfofsiinmydir.GetFileSystemInfos())用来遍历mydir路径下的文件,但是具体是按照什么顺遍历...
如题,foreach (FileSystemInfo fsi in mydir.GetFileSystemInfos())用来遍历mydir路径下的文件,但是具体是按照什么顺遍历的呢,我想要将该文件夹的问价按照由旧到新的顺序进行遍历,需要什么实现呢?
展开
4个回答
展开全部
//根据最后写入日期排序
var dirs = from d in Directory.GetFiles(@"d:\", "*.*")
orderby Directory.GetLastWriteTime(d)
select d;
//遍历排序结果
dirs.ToList().ForEach(x => MessageBox.Show(x));
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你要自己定义如何排序(见下面的DateComparer),然后把得到的文件数组排一下序:
class DateComparer : IComparer
{
public int Compare(object info1, object info2)
{
return DateTime.Compare(((FileSystemInfo)info1).LastWriteTime,
((FileSystemInfo)info2).LastWriteTime);
}
}
你自己的代码:
IComparer dateComparer = new DateComparer();
FileSystemInfo[] infos = mydir.GetFileSystemInfos();
Array.Sort(infos, dateComparer);
foreach (FileSystemInfo fsi in infos)
{ }
注意你得到的FileSystemInfo里面可能既有文件又有文件夹的。
class DateComparer : IComparer
{
public int Compare(object info1, object info2)
{
return DateTime.Compare(((FileSystemInfo)info1).LastWriteTime,
((FileSystemInfo)info2).LastWriteTime);
}
}
你自己的代码:
IComparer dateComparer = new DateComparer();
FileSystemInfo[] infos = mydir.GetFileSystemInfos();
Array.Sort(infos, dateComparer);
foreach (FileSystemInfo fsi in infos)
{ }
注意你得到的FileSystemInfo里面可能既有文件又有文件夹的。
追问
这个比价排序出来的结果是从新到旧吧,怎么实现日期由旧到新呢
追答
那你就DateTime.Compare的时候info2在前面,info1在后面就好了。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
获取fsi的创建时间,然后进行排序
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
记得是按照字母顺序
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询