0

特定のフォルダ内のすべての画像ファイルのリストを取得したいと考えています。

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

For Each f In imagefiles
    'do something
Next

ただし、上記にはすべてのファイルタイプがリストされています。画像ファイルの種類のみを返すように変更するには?

4

3 に答える 3

1

画像ファイルには複数の拡張子を付けることができますが、EnumerateFiles はそのオーバーロードで拡張子を 1 つしか取ることができません。ファイル拡張子のリストを提供し、IEnumerable メソッドの Where および 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
于 2013-10-04T08:46:18.317 に答える
0

に 2 番目のパラメーターを追加しますDirectory.EnumerateFiles

Directory.EnumerateFiles(targetFolder, "*.jpg")
于 2013-10-04T08:26:07.260 に答える
0

Directory.EnumerateFiles検索パターンである 2 番目のパラメーターを に渡すことができます。

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

For Each f In imagefiles
    'do something
Next

これにより、.jpg で終わるすべてのファイルが列挙されます。ただし、「すべての画像ファイル」の明確なリストはありません。アプリケーションにとって意味のある検索パターンでそれを自分で定義する必要があります。

于 2013-10-04T08:26:28.073 に答える