我试图在我的计算机中获取最新的文本文件。 我需要去每台计算机的每个驱动器并搜索所有文本文件,并且只需要获取最新的一个文件。如何在搜索计算机的所有驱动器后获取最新的文本文件
我尝试了一些代码,得到一个错误,也不能确定最新的文件,从所有的驱动都可以工作或不
try
{
foreach (DriveInfo d in DriveInfo.GetDrives())
{
var X = GetLatestFiles(d.Name, "*.txt");
}
}
catch (Exception ex) { Console.WriteLine(ex); }
public static FileInfo GetLatestFiles(string path, string searchPattern)
{
return Directory.EnumerateFiles(path, searchPattern).Union(
Directory.EnumerateDirectories(path).SelectMany(d =>
{
try
{
return GetLatestFiles(d, searchPattern);
}
catch (UnauthorizedAccessException)
{
return Enumerable.Empty<String>();
}
})).OrderByDescending(f => (f == null ? DateTime.MinValue : f.LastWriteTime)).FirstOrDefault();
}
错误
的类型参数的方法“Enumerable.SelectMany (IEnumerable,Func>)' 不能从使用情况推断。尝试明确指定类型参数 。 ConsoleApp1 C:\用户\ H190733 \源\回购\ ConsoleApp1 \ ConsoleApp1 \ Program.cs的43活动
圣莫里,这将使用大量的内存,我不会为此烦扰LINQ,也许不会递归。有一个需要处理的目录列表和一个FileInfo变量,在每个文件夹中列出内容,添加将文件夹放在列表末尾,然后列出所有文件,并在文件夹中查找最高日期fileinfo,如果日期比进程外的fileinfo变量更新ing循环,使新的fileinfo成为一个比较对象 –