如何对DirectoryInfo.GetFiles()进行排序

5
我正在以编程方式创建PowerPoint文件的图像。在将图像保存到本地驱动器后,我使用DirectoryInfo.GetFiles()获取文件。
我按顺序号保存图像文件。
我的文件: enter image description here 我的问题是当我获取文件时,它们不是我需要的顺序。 我在FileInfo[]中获取的文件顺序是: enter image description here 有人能帮我解决这个问题吗?

https://dev59.com/mm015IYBdhLWcg3w9gjh - Nagaraj S
1
https://dev59.com/CXVD5IYBdhLWcg3wNIzc - bansi
@bansi:我在那个问题中没有找到解决方案,所以才会提问。请再次检查问题。谢谢。 - Rahul Gokani
1
我已经投票支持重新开放。在此期间检查。const Int32 templateLength = 4;/*文件名模板的大小(直到数字部分开始)*/foreach (FileInfo info in dInfo.GetFiles().OrderBy(fi => fi.Name.Substring(0, templateLength)).ThenBy(fi => Conversion.Val(fi.Name.Substring(templateLength)))) { Debug.Print(info.Name); } - bansi
各位,你们选择了错误的重复问题。这是 C#中的自然排序顺序 ,OP正在寻找它。 - Athari
显示剩余2条评论
2个回答

5
该函数不保证顺序,但您可以通过一个简单的LINQ查询实现所需的结果;
   FileInfo[] sortedFiles = DirectoryInfo.GetFiles().OrderByDescending(x => x.Name).ToArray();

1

试试这个

foreach (FileInfo fi in directory.GetFiles().OrderBy(fi=>fi.FileName))
{

}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接