Directory.getFilesで数値順でのソートができません。

[code]

    dirNow = "C:\car";
    fileNames[0] = "C:\car\1.txt";
    fileNames[1] = "C:\car\2.txt";
    fileNames[2] = "C:\car\3.txt";
    fileNames[3] = "C:\car\10.txt";
    
    
    string[] fileNames = Directory.GetFiles(dirNow);
    Array.Sort(fileNames);
    foreach(string str in fileNames) Console.WriteLine(str);
    Application.Exit();
    
[/code]

結果

[code]

    1.txt
    10.txt
    2.txt
    3.txt
    
[/code]

理想

[code]

    1.txt
    2.txt
    3.txt
    10.txt
    
[/code]




WindowsであればStrCmpLogicalWを比較関数として使えば理想のソートが実現できます。

StrCmpLogicalW function (Windows)  
<https://msdn.microsoft.com/ja-
jp/library/windows/desktop/bb759947(v=vs.85).aspx>




WindowsであればStrCmpLogicalWを比較関数として使えば理想のソートが実現できます。

StrCmpLogicalW function (Windows)  
<https://msdn.microsoft.com/ja-
jp/library/windows/desktop/bb759947(v=vs.85).aspx>

