VB.NETのファイルの一覧を取得するサンプルです。
目次
サンプル | GetFilesメソッド |
EnumerateFilesメソッド |
GetFilesメソッド
Public Shared Function GetFiles(path As String, searchPattern As String, searchOption As SearchOption) As String() |
- パスを含むファイル名を配列で取得します。
- 1つめの引数は、パスを指定します。
- 2つめの引数は、ファイル名の指定ができます。アスタリスク(*)とワイルドカード(?)に対応しています。アスタリスクを指定すると全ファイルになります。
- 3つめの引数は、サブディレクトリを含めるかを指定できます。
- 以下は、MicrosoftのDirectory.GetFilesメソッドのリンクです。
https://docs.microsoft.com/ja-jp/dotnet/api/system.io.directory.getfiles?view=netcore-3.1
AllDirectories | 現在のフォルダとサブフォルダも含める |
TopDirectoryOnly | 現在のフォルダのみ |
GetFilesメソッドのサンプルです。
Module Module1
Sub Main()
Dim path1 As String = "D:\Test1"
Dim filename() As String
Try
filename = System.IO.Directory.GetFiles _
(path1, "*.csv", System.IO.SearchOption.AllDirectories)
For Each a As String In filename
Console.WriteLine(a)
Next
Catch e As Exception
Console.WriteLine(e.Message)
End Try
End Sub
End Module
7行目は、GetFilesメソッドです。
8行目の2つめの引数は*.csvで拡張子がcsvのファイルのみ取得します。
3つめの引数は、AllDirectoriesでサブフォルダまで検索します。
結果は、以下です。
D:\Test1\test1.csv
D:\Test1\test2.csv
D:\Test1\test2\test3.csv
EnumerateFilesメソッド
Public Shared Function EnumerateFiles (path As String, searchPattern As String, searchOption As SearchOption) As IEnumerable(Of String) |
- パスを含むファイル名をIEnumerable(Of String)で取得します。
- 引数については、上記のGetFilesメソッドと同じです。
- Enumerateは、列挙するという意味です。
- 以下は、MicrosoftのDirectory.EnumerateFilesメソッドのリンクです。
https://docs.microsoft.com/ja-jp/dotnet/api/system.io.directory.enumeratefiles?view=netcore-3.1
AllDirectories | 現在のフォルダとサブフォルダも含める |
TopDirectoryOnly | 現在のフォルダのみ |
EnumerateFilesメソッドのサンプルです。
Module Module1
Sub Main()
Dim path1 As String = "D:\Test1"
Dim filename As IEnumerable(Of String)
Dim filename2() As String = Nothing
Try
filename = System.IO.Directory.EnumerateFiles _
(path1, "*.csv", System.IO.SearchOption.AllDirectories)
For i = 0 To filename.Count - 1
Console.WriteLine(filename(i))
ReDim Preserve filename2(i)
filename2(i) = filename(i)
Next
For Each b As String In filename2
Console.WriteLine(b)
Next
Catch e As Exception
Console.WriteLine(e.Message)
End Try
End Sub
End Module
8行目は、EnumerateFilesメソッドです。
9行目の2つめの引数は*.csvで拡張子がcsvのファイルのみ取得します。
3つめの引数は、AllDirectoriesでサブフォルダまで検索します。
14行目は、EnumerateFilesメソッドで取得した値をString型の配列にセットしています。
結果は、以下の文字列です。3つめは、サブフォルダにあるファイルを表示しています。
D:\Test1\test1.csv
D:\Test1\test2.csv
D:\Test1\test2\test3.csv
関連の記事