[英]DirectoryInfo.GetFiles with multiple filters
I am trying to get a list of FileInfo objects that satisfy multiple filters.我正在尝试获取满足多个过滤器的 FileInfo 对象列表。
Every suggestion I have seen uses array of file names/paths instead of FileInfo:我看到的每个建议都使用文件名/路径数组而不是 FileInfo:
var files = Directory.GetFiles(sLogPath, "*.*", SearchOption.TopDirectoryOnly)
.Where(s => s.StartsWith("abc", StringComparison.CurrentCultureIgnoreCase) || s.StartsWith("def", StringComparison.CurrentCultureIgnoreCase));
What I am trying to get is:我想要得到的是:
DirectoryInfo di = new DirectoryInfo(sLogPath);
var files = di.GetFiles(<same filter as above>);
But it looks like I can only do something like:但看起来我只能做类似的事情:
var files = di.GetFiles("*_" + dateStr + ".log");
Based on your comment to me on your question, it looks like you want to filter on file names, but get the FileInfo
s that correspond to these names.根据您对我的问题的评论,您似乎想要过滤文件名,但要获取与这些名称对应的
FileInfo
。
You can do something like this你可以这样做
var di = new DirectoryInfo(sLogPath);
var files = di
.GetFiles("*.*", SearchOption.TopDirectoryOnly)
.Where(x => x.Name.StartsWith("abc", StringComparison.CurrentCultureIgnoreCase)
|| x.Name.StartsWith("def", StringComparison.CurrentCultureIgnoreCase))
.ToList();
We're using the Name
property in the filter and working with the FileInfo[]
array returned by DirectoryInfo.GetFiles() .我们在过滤器中使用
Name
属性并使用DirectoryInfo.GetFiles()返回的FileInfo[]
数组。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.