2013-10-04 43 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