C#用foreach确定遍历某一文件夹下的文件顺序

如题,foreach(FileSystemInfofsiinmydir.GetFileSystemInfos())用来遍历mydir路径下的文件,但是具体是按照什么顺遍历... 如题,foreach (FileSystemInfo fsi in mydir.GetFileSystemInfos())用来遍历mydir路径下的文件,但是具体是按照什么顺遍历的呢,我想要将该文件夹的问价按照由旧到新的顺序进行遍历,需要什么实现呢? 展开
 我来答
h598937749
2014-05-21 · TA获得超过316个赞
知道小有建树答主
回答量:1073
采纳率:50%
帮助的人:652万
展开全部
//根据最后写入日期排序
var dirs = from d in Directory.GetFiles(@"d:\", "*.*")
                       orderby Directory.GetLastWriteTime(d)
                       select d;
//遍历排序结果
dirs.ToList().ForEach(x => MessageBox.Show(x));
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
actonst
2014-05-21 · TA获得超过1.8万个赞
知道大有可为答主
回答量:8184
采纳率:80%
帮助的人:5211万
展开全部
你要自己定义如何排序(见下面的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里面可能既有文件又有文件夹的。
追问
这个比价排序出来的结果是从新到旧吧,怎么实现日期由旧到新呢
追答
那你就DateTime.Compare的时候info2在前面,info1在后面就好了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
s15885823584
2014-05-20 · TA获得超过411个赞
知道小有建树答主
回答量:279
采纳率:0%
帮助的人:211万
展开全部
获取fsi的创建时间,然后进行排序
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhoulin777361
2014-05-20 · TA获得超过362个赞
知道小有建树答主
回答量:789
采纳率:40%
帮助的人:298万
展开全部
记得是按照字母顺序
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式