C#でエクスプローラーで表示されるファイルの並び順と同じにソートしてみる

| 2009年6月20日土曜日
必要があったのでメモ。

IComparerを使ってArray.Sort()でソートする。

使い方は、

  1. string[] list = { "01.txt""1.txt""02.txt" }  
  2. Array.Sort(list, new ExplorerSortComparer());  

こんな感じ
--- ExplorerSortComparer Class ---
  1. public class ExplorerSortComparer : IComparer {  
  2.     [DllImport("shlwapi.dll", CharSet = CharSet.Unicode, ExactSpelling = true)]  
  3.     public static extern int StrCmpLogicalW(string str1, string str2);  
  4.   
  5.     public int Compare(object obj1, object obj2) {  
  6.         return StrCmpLogicalW((string)obj1, (string)obj2));  
  7.     }  
  8. }  

0 コメント: