はじめに
フォルダ内のファイル一覧を時間降順にして処理したい場合の処理です。Logファイルを古い順に削除したりするときによく使うのですが、毎回忘れてしまうので記述しておきます。
具体的には
- ディレクトリ内の全ファイルを取得します。
- 日付、時刻順に降順でソートします。
プログラム例
private List<string> GetAllFileFromDir(String dirName)
{
List<String> list = Directory
//ディレクトリ内の全ファイルを取得(サブディレクトリは取らない)
.GetFiles(dirName, "*", SearchOption.TopDirectoryOnly)
// 日付け順に降順でソート
.OrderBy(filePath => File.GetLastWriteTime(filePath).Date)
// 同じ日付け内で時刻順に降順でソート
.ThenBy(filePath => File.GetLastWriteTime(filePath).TimeOfDay)
.ToList();
return list;
}