目的
ファイル名が「file1.txt」「file2.txt」「file10.txt」などの規則性がある場合に、正しくソートしたい場合を想定。 今回は、ファイル名中の数値のみを正規表現で取得し、それをソートすることで実現した。
ソースコード
var fileList = (new DirectoryInfo(filePath)).GetFiles().
Select(x =>
new
{
name = x.FullName,
//ファイル名だけ取り出す→数字だけ残す→数値に変換する(ソート用)
no = int.Parse(Regex.Replace(Path.GetFileName(x.FullName), @"[^0-9]", ""))
}
).OrderBy(x => x.no).ToList();