[英]DirectoryInfo.GetFiles with multiple filters
我正在嘗試獲取滿足多個過濾器的 FileInfo 對象列表。
我看到的每個建議都使用文件名/路徑數組而不是 FileInfo:
var files = Directory.GetFiles(sLogPath, "*.*", SearchOption.TopDirectoryOnly)
.Where(s => s.StartsWith("abc", StringComparison.CurrentCultureIgnoreCase) || s.StartsWith("def", StringComparison.CurrentCultureIgnoreCase));
我想要得到的是:
DirectoryInfo di = new DirectoryInfo(sLogPath);
var files = di.GetFiles(<same filter as above>);
但看起來我只能做類似的事情:
var files = di.GetFiles("*_" + dateStr + ".log");
根據您對我的問題的評論,您似乎想要過濾文件名,但要獲取與這些名稱對應的FileInfo
。
你可以這樣做
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();
我們在過濾器中使用Name
屬性並使用DirectoryInfo.GetFiles()返回的FileInfo[]
數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.