如何从c#中的指定目录中按数字顺序获取文件?

Sar*_*nan 2 c# sorting c#-4.0

我必须使用数字顺序从特定目录中检索文件名列表。实际上文件名是字符串和数值的组合,但以数值结尾。

例如:page_1.png,page_2.png,page3.png...,page10.png,page_11.png,page_12.png...

我的 C# 代码如下:

string filePath="D:\\vs-2010projects\\delete_sample\\delete_sample\\myimages\\";
string[] filePaths = Directory.GetFiles(filePath, "*.png");
Run Code Online (Sandbox Code Playgroud)

它以以下格式检索:

page_1.png
page_10.png
page_11.png
page_12.png
page_2.png...
Run Code Online (Sandbox Code Playgroud)

我期待检索这样排序的列表:

page_1.png
page_2.png
page_3.png
[...]
page_10.png
page_11.png
page_12.png
Run Code Online (Sandbox Code Playgroud)

Mar*_*tos 5

Ian Griffiths对 C#有一种自然的排序。它不对数字出现的位置做任何假设,甚至可以正确地对具有多个数字组件的文件名进行排序,例如 app-1.0.2、app-1.0.11。