我可以通过以下方式获得最新创建的内容;但是我希望用某种模式创建最新版本,而不仅仅是最新创建的
var directory = new DirectoryInfo("D:\\my_dir\\dir_1\\dir_2\\");
var smf_log_name = directory.GetFiles().OrderByDescending(f => f.LastWriteTime).First();
答案 0 :(得分: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();
}
答案 1 :(得分:1)
您可以使用GetFiles
方法中的搜索模式。
directory.GetFiles("myPattern").OrderByDescending(f => f.LastWriteTime).First();
如果您希望所有子目录都包含在搜索中,也可以使用SearchOption.AllDirectories
。
directory.GetFiles("myPattern", SearchOption.AllDirectories).OrderByDescending(f => f.LastWriteTime).First();