目的
ファイル名が「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();