如何使用.NET查找目录中的最新文件,而不进行循环?

如何使用.NET查找目录中的最新文件,而不进行循环?

我需要在目录中找到最近修改过的文件。

我知道我可以遍历文件夹中的每个文件并进行比较File.GetLastWriteTime,但有没有更好的方法可以在不循环的情况下执行此操作?


紫衣仙女
浏览 644回答 3
3回答

翻过高山走不出你

这样的事情怎么样......var directory = new DirectoryInfo("C:\\MyDirectory");var myFile = (from f in directory.GetFiles()             orderby f.LastWriteTime descending             select f).First();// or...var myFile = directory.GetFiles()             .OrderByDescending(f => f.LastWriteTime)             .First();

繁花不似锦

如果你想以递归方式搜索,你可以使用这段漂亮的代码:public static FileInfo GetNewestFile(DirectoryInfo directory) {    return directory.GetFiles()        .Union(directory.GetDirectories().Select(d => GetNewestFile(d)))        .OrderByDescending(f => (f == null ? DateTime.MinValue : f.LastWriteTime))        .FirstOrDefault();                        }只需按以下方式调用它:FileInfo newestFile = GetNewestFile(new DirectoryInfo(@"C:\directory\"));就是这样。返回FileInfo实例或null目录为空。

FFIVE

扩展上面的第一个,如果要搜索某个模式,可以使用以下代码:string pattern = "*.txt";var dirInfo = new DirectoryInfo(directory);var file = (from f in dirInfo.GetFiles(pattern) orderby f.LastWriteTime descending select f).First();
打开App,查看更多内容
随时随地看视频慕课网APP