如何获取最新(最后修改)的目录[C#]

Sha*_*n00 27 c# directory

目前我的应用程序使用string [] subdirs = Directory.GetDirectories(path)来获取子目录列表,现在我想提取列表中最新(最后修改过的)子目录的路径.

实现这一目标的最简单方法是什么?(效率不是一个主要问题 - 但坚固性是)

Mat*_*hen 48

非递归:

new DirectoryInfo(path).GetDirectories()
                       .OrderByDescending(d=>d.LastWriteTimeUtc).First();
Run Code Online (Sandbox Code Playgroud)

递归:

new DirectoryInfo(path).GetDirectories("*", 
    SearchOption.AllDirectories).OrderByDescending(d=>d.LastWriteTimeUtc).First();
Run Code Online (Sandbox Code Playgroud)


Lar*_*mie 14

不使用LINQ

DateTime lastHigh = new DateTime(1900,1,1);
string highDir;
foreach (string subdir in Directory.GetDirectories(path)){
    DirectoryInfo fi1 = new DirectoryInfo(subdir);
    DateTime created = fi1.LastWriteTime;

    if (created > lastHigh){
        highDir = subdir;
        lastHigh = created;
    }
}
Run Code Online (Sandbox Code Playgroud)