![](/img/trans.png)
[英]Directory.GetFiles searchPattern inconsistent with documentation
[英]Directory.GetFiles returns unexpected results with SearchPattern
我正在處理一個處理大量文件(超過 50 000 個文件)的批處理程序,我正面臨Directory.GetFiles
方法的奇怪行為。
在此過程中,我移動與以下搜索模式“*.pdf”匹配的文件,並通過Directory.GetFiles
方法獲取文件:我很驚訝地看到有時我移動了 .pdfa 文件。
所以我檢查了文檔,它清楚地指出,如果搜索模式包含一個帶有 3 個字母的擴展名,每個擴展名以該擴展名開頭的文件都將被返回。
我已經用一個簡單的程序進行了測試,它的行為不像文檔中所說的那樣,它只在極少數情況下表現得像這樣。
使用此代碼:
static void Main(string[] args) {
var directory = @"E:\Test\";
var files = Directory.GetFiles(directory, "*.pdf");
foreach(var file in files)
Console.WriteLine(file);
}
我有這個結果:
你對這種行為有什么解釋嗎?
正如@luaan 和@hans-passant 所解釋的(非常感謝!)我沒有找到擴展名為 .pdfa 的文件,因為我的硬盤驅動器上禁用了 8.3 格式。
在啟用了 8.3 格式的硬盤驅動器上,該方法的行為與文檔中所述相同。
GetFiles 具有不同的行為,無論是否啟用設置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.