フォルダ内のファイル名を列挙する方法
◆概要
このページは、Visual Basic 6.0でフォルダ内のファイル名を列挙する方法について記載しています。
ファイルシステムオブジェクトに含まれるFiles コレクションを使うことで、フォルダ内のファイル名を列挙できます。
◆Sample code
次の例は、Windwsフォルダのファイル名をリストボックスに列挙します。
事前に[プロジェクト] メニューの [参照設定] で「Microsoft Scripting Runtime」にチェックを付けておく必要があります。
Option Explicit Private Sub Command1_Click() Dim colFilesystem As Object Dim objFolder As Object Dim colFiles As Object Dim objFile As Object Set colFilesystem = CreateObject("Scripting.FileSystemObject") ' Windowsフォルダを取得 Set objFolder = colFilesystem.GetSpecialFolder(0) Set colFiles = objFolder.Files ' Windowsディレクトリのファイル名をリストアップ For Each objFile In colFiles List1.AddItem objFile.Name Next ' オブジェクトを解放 Set colFilesystem = Nothing Set objFolder = Nothing Set colFiles = Nothing Set objFile = Nothing End Sub Private Sub Form_Load() ' フォームのキャプション設定 Me.Caption = "Windowsフォルダのファイル一覧" ' ボタンの設定 With Command1 .Caption = "実行" .Default = True End With End Sub
◆実行結果
◆Sample code 2
FileSystemObject の Files プロパティを使うと、指定したディレクトリ内のすべてのファイルを取得することができます。
次の例では、C ドライブの Windows フォルダの中にあるすべてのファイルを取得し、「List1.List(lIndex) = hFile.Path」で取得したファイル名のパスをリストボックスに追加します。
このサンプルコードを実行するには、事前に[プロジェクト] メニューの [参照設定] で「Microsoft Scripting Runtime」にチェックを付けておく必要があります。
Option Explicit Private Sub Command1_Click() Dim lIndex As Long Dim hFolder As Folder Dim hFile As File Dim Fso As FileSystemObject ' List1をクリアする List1.Clear ' フィルシステムオブジェクトのインスタンス Set Fso = New FileSystemObject Set hFolder = Fso.GetFolder("C:\Windows\") ' 変数の初期化 lIndex = 0 ' 指定したフォルダ内のファイルを列挙する For Each hFile In hFolder.Files ' 取得したファイル名のパスをリストボックスに追加 List1.List(lIndex) = hFile.Path lIndex = lIndex + 1 Next hFile ' オブジェクトの開放 Set Fso = Nothing Set hFile = Nothing Set hFolder = Nothing End Sub Private Sub Form_Load() ' フォームのキャプション設定 Me.Caption = "Windowsフォルダのファイル一覧" ' ボタンの設定 With Command1 .Caption = "実行" .Default = True End With End Sub
◆実行結果