0

以下でこれを使用して作成された最新のものを取得できました。しかし、最新の作成だけでなく、特定のパターンで作成された最新のものが必要です

 var directory = new DirectoryInfo("D:\\my_dir\\dir_1\\dir_2\\");
        var smf_log_name = directory.GetFiles().OrderByDescending(f => f.LastWriteTime).First();
4

2 に答える 2

6

さて、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();
}
于 2012-12-20T22:48:20.147 に答える
1

メソッドで検索パターンを使用できますGetFiles

directory.GetFiles("myPattern").OrderByDescending(f => f.LastWriteTime).First();

SearchOption.AllDirectoriesすべてのサブディレクトリを検索に含める場合にも使用できます。

directory.GetFiles("myPattern", SearchOption.AllDirectories).OrderByDescending(f => f.LastWriteTime).First();
于 2012-12-20T22:51:34.240 に答える