C# 获取日期范围之后目录和子目录中的所有文件
有没有办法获取目录和子目录中日期范围之后的所有文件 我知道C# 获取日期范围之后目录和子目录中的所有文件,c#,C#,有没有办法获取目录和子目录中日期范围之后的所有文件 我知道Directory.GetFiles()可以迭代所有文件夹,但这不允许我访问可以在其中执行if语句的文件对象。您可以使用和搜索选项。例如,所有目录: var allFilesIn2015 = Directory.EnumerateFiles("Dir-Path", "*.*", System.IO.SearchOption.AllDirectories) .Where(path => File.GetCreationTime
Directory.GetFiles()
可以迭代所有文件夹,但这不允许我访问可以在其中执行if语句的文件对象。您可以使用和搜索选项。例如,所有目录
:
var allFilesIn2015 = Directory.EnumerateFiles("Dir-Path", "*.*", System.IO.SearchOption.AllDirectories)
.Where(path => File.GetCreationTime(path).Year == 2015)
.ToList();
您还可以使用FileInfo
s及其属性
CreationTime
或LastAccessTime
:
DirectoryInfo dir = new DirectoryInfo("Dir-Path");
var allFileInfosIn2015 = dir.EnumerateFiles("*.*", System.IO.SearchOption.AllDirectories)
.Where(fi => fi.CreationTime.Year == 2015)
.ToList();
我使用,因为在这种情况下更有效。在开始处理文件之前,它不需要将所有文件加载到内存中
引述:
EnumerateFiles和GetFiles方法的区别如下:
使用EnumerateFiles,可以开始枚举名称集合
在归还全部藏品之前;当您使用GetFiles时
必须等待返回整个名称数组,然后才能
访问阵列。因此,当您处理许多文件和
目录、枚举文件可以更高效
您可以使用和SearchOption.AllDirectories
,例如:
var allFilesIn2015 = Directory.EnumerateFiles("Dir-Path", "*.*", System.IO.SearchOption.AllDirectories)
.Where(path => File.GetCreationTime(path).Year == 2015)
.ToList();
您还可以使用FileInfo
s及其属性
CreationTime
或LastAccessTime
:
DirectoryInfo dir = new DirectoryInfo("Dir-Path");
var allFileInfosIn2015 = dir.EnumerateFiles("*.*", System.IO.SearchOption.AllDirectories)
.Where(fi => fi.CreationTime.Year == 2015)
.ToList();
我使用,因为在这种情况下更有效。在开始处理文件之前,它不需要将所有文件加载到内存中
引述:
EnumerateFiles和GetFiles方法的区别如下:
使用EnumerateFiles,可以开始枚举名称集合
在归还全部藏品之前;当您使用GetFiles时
必须等待返回整个名称数组,然后才能
访问阵列。因此,当您处理许多文件和
目录、枚举文件可以更高效
它返回带有路径的完整文件名。因此,您可以使用Fileinfo或其他东西来确定某些文件属性,使用
DirectoryInfo.GetFiles()
代替目录,然后使用LinqIt返回带有路径的完整文件名。因此,您可以使用Fileinfo或其他东西来确定某些文件属性,使用DirectoryInfo.GetFiles()
代替Directory,然后使用Linq