1,使用文件的某种属性排序
//按照文件创建时间排序
DirectoryInfo directoryInfo=new DirectoryInfo(folderPath);
FileInfo[] fileInfos= directoryInfo.GetFiles();
fileInfos.OrderBy(f => f.CreationTime);
碰到的问题:
在文件夹中有名称分别为1-10的十个文件,在文件夹中按照名称排序时,顺序为1,2,3,...,10。
但使用默认排序或使用下面的代码按照文件名称排序时,
fileInfos.OrderBy(f => f.Name);
得到的顺序为:1,10,2,3,...9。
使用下面的方式可解决:
DirectoryInfo directoryInfo=new DirectoryInfo(folderPath);
FileInfo[] fileInfos= directoryInfo.GetFiles();
List<string> files=new List<string>();
Array.Sort(fileInfos, (x1, x2) => int.Parse(Regex.Match(x1.Name, @"\d+").Value).CompareTo(int.Parse(Regex.Match(x2.Name, @"\d+").Value)));
foreach (FileInfo file in fileInfos)
{
files.Add(file.FullName);
}
网友评论