2014-02-20 72 views
0

我想搜索目錄並獲取所有jpg文件的列表。我有它的代碼如下:如何僅使用c搜索目錄中的jpg文件#

string[] fileList = Directory.Exists(this._imageDirectory) 
              ? Directory.GetFiles(this._imageDirectory, "*.jpg") 
              : null; 

這是工作好,如果我有文件,如下圖所示:

1.jpg 
2.jpg 
3.txt 
中發現只有兩個文件在上述情況下

。但如果我有以下文件:

1.jpg 
2.jpg 
3.jpg_tmp 

它找到3個文件。它發現它不應該找到它3.jpg_tmp。

我該如何解決它,而無需查看所有fileList並找到不正確的?

回答

2

看看從MSDN

this提取物當分機正好是三個字符,GetFiles的將返回所有匹配的擴展名,而開始與是3個字母的擴展名。

所以,*.jpg將匹配hello.jpg,hello.jpger,hello.jpgworld

insted的使用hello?.jpg這將完全匹配hello.jpg。


解決你的問題,你可以使用字符串的EndsWith方法做below

+0

這不起作用。它根本沒有返回任何文件。 – mans

0

可以過濾與LINQ名單:

var pictures = fileList != null ? 
     fileList.Where(name => name.EndsWith(".jpg")).ToArray() : 
     Enumerable.Empty<string>().ToArray(); 
0

.JPG將只與單個字符返回文件?之前 」。」。需要按user2720372建議並過濾列表。