2013-10-04 40 views
0

我想獲得給定文件夾中所有圖像文件的列表。枚舉目錄中的圖像文件

Dim targetFolder As String = "C:\Data\"  
Dim imagefiles = From file In Directory.EnumerateFiles(targetFolder) 

For Each f In imagefiles 
    'do something 
Next 

上面列出了所有文件類型。如何將其更改爲僅返回圖像文件類型?

回答

1

圖像文件可以有多個擴展名,但EnumerateFiles只能在其過載中使用一個擴展名。你可以克服這個限制提供的文件擴展名列表,並使用了IEnumerable方法在哪裏,任何

Dim targetFolder As String = "C:\Data"  
Dim imgExtensions() As string = { ".jpg", ".jpeg", ".bmp", ".gif", ".png" } 
Dim imageFiles = Directory.EnumerateFiles(targetFolder) _ 
       .Where(Function(s) imgExtensions _ 
       .Any(Function(x) x = Path.GetExtension(s))) 

For Each file in imageFiles 
    Console.WriteLine(file) 
Next 
0

添加第二個參數來Directory.EnumerateFiles

Directory.EnumerateFiles(targetFolder, "*.jpg") 
0

你可以傳遞第二個參數來Directory.EnumerateFiles這是一個搜索模式:

Dim targetFolder As String = "C:\Data\"  
Dim imagefiles = From file In Directory.EnumerateFiles(targetFolder, "*.jpg") 

For Each f In imagefiles 
    'do something 
Next 

這將枚舉以.jpg結尾的所有文件。但是,沒有確切的「所有圖像文件」列表。您需要自己定義一個對您的應用程序有意義的搜索模式。

+0

如果我有我的圖片文件作爲點心擴展()作爲字符串= {「.JPG」,「.JPEG」 「.jpe」,「.jfif」,「.png」},我如何列舉這些? – Nuts

+0

@ user2143213,看看這篇文章:http://stackoverflow.com/questions/7039580/multiple-file-extensions-searchpattern-for-system-io-directory-getfiles – nvoigt

+0

已經有一個答案是:http ://stackoverflow.com/questions/3754118/how-to-filter-directory-enumeratefiles-with-multiple-criteria – Jojo