我需要一些帮助来使用 LINQ 根据文件大小对文件列表进行归档。我有一些代码,但它使用的是 file.length 而不是 FileInfo(file).length。我不知道如何在表达式中实现对象“FileInfo”。帮助?
{
IEnumerable<string> result = "*.ini,*.log,*.txt"
.SelectMany(x => Directory.GetFiles("c:\logs", x, SearchOption.TopDirectoryOnly))
;
result = result
.Where(x => (x.Length) > "500000")
;
}
最佳答案
你应该能够做这样的事情。
使用 DirectoryInfo,GetFiles 将返回 FileInfo 的集合而不是字符串。
new DirectoryInfo(@"c:\logs")
.GetFiles("*.ini,*.log,*.txt", SearchOption.TopDirectoryOnly)
.Where(f => f.Length > 500000);
当然,如果您愿意,您总是会内联创建 FileInfo。
如果你只是想找回文件名..
IEnumerable<string> results = new DirectoryInfo(@"c:\logs")
.GetFiles("*.ini,*.log,*.txt", SearchOption.TopDirectoryOnly)
.Where(f => f.Length > 500000)
.Select(f => f.FullName);
关于时间:2018-01-08 标签:c#linq: Filter List of Files based on File Size,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1494602/