私のハードディスクには、たとえば次のものがあります。
dir1 dir2 dir3 dir4 .....
私のコードは次のとおりです。
DirectoryInfo dInfo = new DirectoryInfo(AutomaticsubDirectoryName);
DirectoryInfo[] subdirs = dInfo.GetDirectories();
そのため、subdirs
すべてのディレクトリを取得していますが、ハードディスク上の順序と同じではありません。subdirs
ハードディスク上と同じ順序になるように並べ替えるにはどうすればよいですか?
これで解決しました:
DirectoryInfo[] subdirs = dInfo.GetDirectories().OrderBy(d =>
{
int i = 0;
if (d.Name.Contains("Lightning ") && d.Name.Contains(" Length") && d.Name.IndexOf("Lightning ") < d.Name.IndexOf(" Length"))
{
string z = d.Name.Substring(("Lightning ").Length);
string f = z.Substring(0, z.IndexOf(" Length"));
if (Int32.TryParse(f, out i))
return i;
else
return -1;
}
else
return -1;
}).ToArray();
完璧に動作します。