簡體   English   中英

具有多個過濾器的 DirectoryInfo.GetFiles

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM