C# 在指定目录和子目录中查找最新创建的 *.txt 文件?
C# Find the newest created *.txt file in specified directory AND sub-directories?
我现在已经尝试了所有方法,但有些东西不起作用:
我需要在我指定的目录和子目录中找到最新的 Date Created *.txt 文件。
string tPath = "C:\MyDirectory";
string[] fDir = Directory.GetFiles(tPath, "*.txt", SearchOption.AllDirectories);
filePath = fDir[0];
添加,如下导致编译错误:
string[] fDir = Directory.GetFiles(tPath, "*.txt", SearchOption.AllDirectories).OrderByDescending(f => f.LastWriteTime).First();
错误 CS1061 'string' 不包含 'LastWriteTime' 的定义,并且找不到接受类型 'string' 的第一个参数的扩展方法 'LastWriteTime'
我没有想法,请帮忙
首先,Directory.GetFiles()
枚举文件系统对象的效率极低。 Directory.EnumerateFileSystemEntries()
以更优化的方式完成相同的工作。
接下来,GetFiles()
(和 EnumerateFileSystemEntries()
,就此而言)return 是文件系统对象的完整路径的集合,这就是为什么您的第二个代码段无法编译。试试像
foreach(var fileInfo in Directory.EnumerateFileSystemEntries().Select(s => new FileInfo(s))
这也可能会失败(权限、EnumerateFileSystemEntries()
returning 目录路径等),但会让你继续。
感谢您的帮助,实际上找到了我自己问题的答案:
string tPath = "C:\MyDirectory";
filePath = Directory.EnumerateFiles(tPath, "*.txt", SearchOption.AllDirectories).OrderByDescending(File.GetCreationTime).First();
不同之处在于:
OrderByDescending(File.GetCreationTime).First()
不是OrderByDescending(f => f.GetCreationTime).First()
ps 感谢您提供有关 .enumeratefiles
的提示
我现在已经尝试了所有方法,但有些东西不起作用:
我需要在我指定的目录和子目录中找到最新的 Date Created *.txt 文件。
string tPath = "C:\MyDirectory";
string[] fDir = Directory.GetFiles(tPath, "*.txt", SearchOption.AllDirectories);
filePath = fDir[0];
添加,如下导致编译错误:
string[] fDir = Directory.GetFiles(tPath, "*.txt", SearchOption.AllDirectories).OrderByDescending(f => f.LastWriteTime).First();
错误 CS1061 'string' 不包含 'LastWriteTime' 的定义,并且找不到接受类型 'string' 的第一个参数的扩展方法 'LastWriteTime'
我没有想法,请帮忙
首先,Directory.GetFiles()
枚举文件系统对象的效率极低。 Directory.EnumerateFileSystemEntries()
以更优化的方式完成相同的工作。
接下来,GetFiles()
(和 EnumerateFileSystemEntries()
,就此而言)return 是文件系统对象的完整路径的集合,这就是为什么您的第二个代码段无法编译。试试像
foreach(var fileInfo in Directory.EnumerateFileSystemEntries().Select(s => new FileInfo(s))
这也可能会失败(权限、EnumerateFileSystemEntries()
returning 目录路径等),但会让你继续。
感谢您的帮助,实际上找到了我自己问题的答案:
string tPath = "C:\MyDirectory";
filePath = Directory.EnumerateFiles(tPath, "*.txt", SearchOption.AllDirectories).OrderByDescending(File.GetCreationTime).First();
不同之处在于:
OrderByDescending(File.GetCreationTime).First()
不是OrderByDescending(f => f.GetCreationTime).First()
ps 感谢您提供有关 .enumeratefiles
的提示