C# 使用c按创建日期筛选文件#
通过下面的代码,我可以合并目录中存在的文本文件C# 使用c按创建日期筛选文件#,c#,C#,通过下面的代码,我可以合并目录中存在的文本文件 var allLines = Directory.GetFiles(directory, "*.txt") .SelectMany(f => File.ReadLines(f)); File.WriteAllLines(outputFileName, allLines); 如何修改它以合并今天创建的文件 DirectoryInfo info = new DirectoryInfo("");
var allLines = Directory.GetFiles(directory, "*.txt")
.SelectMany(f => File.ReadLines(f));
File.WriteAllLines(outputFileName, allLines);
如何修改它以合并今天创建的文件
DirectoryInfo info = new DirectoryInfo("");
FileInfo[] files = info.GetFiles().OrderBy(p => p.CreationTime).ToArray();
如何组合这段代码?试试以下方法:
var allLines = Directory.GetFiles(directory, "*.txt")
.Where(x => new FileInfo(x).CreationTime.Date == DateTime.Today.Date)
.SelectMany(f => File.ReadLines(f));
使用File.GetCreationTime方法:
var allLines = Directory.EnumerateFiles(directory, "*.txt", SearchOption.TopDirectoryOnly)
.Where(path => File.GetCreationTime(path).Date == DateTime.Today)
.SelectMany(f => File.ReadLines(f));
DateTime.Now的意思就是现在,不是“今天”@SriramSakthivel,你是对的,但它是
p.CreationTime==DateTime.Now
before@Andrew我应该说你的两个代码都不会编译,因为Directory.GetFiles
返回string[]
而不是Fileinfo[]
。而且也没有理由使用DateTime.Now.Date
这就是为什么我们有DateTime.Today
属性。@SriramSakthivel,感谢DateTime。今天,不知何故我已经7年不知道它了:)EnumerateFiles
比GetFiles
更好用是的,对,它开始枚举得更快,不等待检索所有文件,因为它是IEnumerable。错过了那个,只是跟着问题。
DirectoryInfo info = new DirectoryInfo(directory);
var allLines = info.GetFiles("*.txt")
.Where(p => p.CreationTime.Date == DateTime.Today)
.OrderBy(p => p.CreationTime)
.SelectMany(p => File.ReadAllLines(p.FullName));
File.WriteAllLines(outputFileName, allLines);