【发布时间】:2014-08-22 22:21:07
【问题描述】:
我正在寻找一种方法,该方法将采用文件扩展名类型和目录,并返回此目录和按最新创建日期排序的子目录中的所有文件,即最新文件优先。
到目前为止,我已经确定了以下方法,该方法旨在快速,但是是否有更好的方法来执行此操作,我需要它返回 FileInfo 而不是字符串,并按上述方式排序。
public static IEnumerable<string> GetFileList(string fileSearchPattern, string rootFolderPath)
{
Queue<string> pending = new Queue<string>();
pending.Enqueue(rootFolderPath);
string[] tmp;
while (pending.Count > 0)
{
rootFolderPath = pending.Dequeue();
tmp = Directory.GetFiles(rootFolderPath, fileSearchPattern);
for (int i = 0; i < tmp.Length; i++)
{
yield return tmp[i];
}
tmp = Directory.GetDirectories(rootFolderPath);
for (int i = 0; i < tmp.Length; i++)
{
pending.Enqueue(tmp[i]);
}
}
}
【问题讨论】: