【发布时间】:2015-03-22 09:15:23
【问题描述】:
Ans:这是使用 c# 代码从文件夹中获取最新文件名的一种解决方案
调用函数如下:
FileInfo newestFile = GetNewestFile(new DirectoryInfo(@"D:\DatabaseFiles"));
功能:
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();
}
现在我的问题是有人请告诉我从文件夹中获取最新文件名的替代方法吗?
【问题讨论】:
-
为什么需要别的东西?你的“更好”标准是什么?
-
顺便说一句,你为什么要检查
null?DirectoryInfo.GetFiles从不返回null的文件。 -
LastWriteTime 在以下解决方案中,如果其他文件之一被修改,将会出错。 LastWrite 就是这个意思。上次写入文件的时间。如果您想以更可靠的方式获取最后一个文件,请保留现有文件的历史记录,并在每次检查时将它们与新快照进行比较。在新文件上查找 LastWriteTime。您可以改用 CreationTime,但请注意,如果文件被覆盖,旧日期可能仍在新文件上。我建议将 CreationTime 和 LastWriteTime 结合使用。
标签: c# file-io io fileinfo getdirectories