我想获取给定文件夹中所有图像文件的列表。
Dim targetFolder As String = "C:\Data\"
Dim imagefiles = From file In Directory.EnumerateFiles(targetFolder)
For Each f In imagefiles
'do something
Next
以上列出了所有文件类型。如何更改它只返回图像文件类型?
答案 0 :(得分:1)
图像文件可能有多个扩展名,但EnumerateFiles在其重载中只能占用一个扩展名。您可以克服此限制,提供文件扩展名列表并使用IEnumerable方法Where and Any
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
答案 1 :(得分:0)
向Directory.EnumerateFiles
添加第二个参数:
Directory.EnumerateFiles(targetFolder, "*.jpg")
答案 2 :(得分: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结尾的文件。但是,没有明确的“所有图像文件”列表。您需要在对您的应用程序有意义的搜索模式中定义自己。