以下でこれを使用して作成された最新のものを取得できました。しかし、最新の作成だけでなく、特定のパターンで作成された最新のものが必要です
var directory = new DirectoryInfo("D:\\my_dir\\dir_1\\dir_2\\");
var smf_log_name = directory.GetFiles().OrderByDescending(f => f.LastWriteTime).First();
さて、DirectoryInfo.GetFilesには、パターン引数を取るオーバーロードがあります。
var directory = new DirectoryInfo("D:\\my_dir\\dir_1\\dir_2");
var smf_log_name = directory.GetFiles("*.txt").OrderByDescending(f => f.LastWriteTime).First();
渡されたパターンに注意してください。指定されたパターンを持つファイルがない場合、シーケンスはInvalidOperationException
FileInfo result = null;
var directory = new DirectoryInfo("D:\\my_dir\\dir_1\\dir_2");
var list = directory.GetFiles("*.txt");
if(list.Count() > 0)
{
result = list.OrderByDescending(f => f.LastWriteTime).First();
}
メソッドで検索パターンを使用できますGetFiles
。
directory.GetFiles("myPattern").OrderByDescending(f => f.LastWriteTime).First();
SearchOption.AllDirectories
すべてのサブディレクトリを検索に含める場合にも使用できます。
directory.GetFiles("myPattern", SearchOption.AllDirectories).OrderByDescending(f => f.LastWriteTime).First();