如何获取目录中创建的某些模式的最新文件

时间:2012-12-20 22:41:00

标签: c# file

我可以通过以下方式获得最新创建的内容;但是我希望用某种模式创建最新版本,而不仅仅是最新创建的

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

2 个答案:

答案 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();