指定したフォルダに属するサブフォルダやファイル名をすべて表示する |
対象バージョン : 97, 2000, 2002, 2003, 2007
最終更新日 : 2007/03/11
(オリジナル作成日 : 2003/05/19)
概 要
指定したフォルダに含まれているサブフォルダ名や、ファイル名をイミディエートウィンドウへ表示するサンプルです。
サンプル
Dir 関数を使う方法もありますが、再帰呼び出しができず面倒なため、FileSystemObject を使用しました。
参照設定で "Microsoft Scripting Runtime" の指定が必要です。
Public Sub Sample(argPath) Dim objFSO As Scripting.FileSystemObject Dim objFLD As Scripting.Folder Set objFSO = New Scripting.FileSystemObject If objFSO.FolderExists(argPath) = False Then MsgBox "そんなフォルダないです" GoTo Sample_Exit End If Set objFLD = objFSO.GetFolder(argPath) Call Sample1(1, objFLD) Sample_Exit: Set objFLD = Nothing Set objFSO = Nothing End Sub Public Sub Sample1(argLevel As Integer, argFLD As Scripting.Folder) Dim objFLD As Scripting.Folder Dim objFL As Scripting.File ' ファイル名列挙 For Each objFL In argFLD.Files Debug.Print String(argLevel - 1, " ") & "(" & argLevel & ")" & objFL.Name Next ' フォルダ名列挙 For Each objFLD In argFLD.SubFolders Debug.Print String(argLevel - 1, " ") & "(" & argLevel & ")" & objFLD.Name & "\" Call Sample1(argLevel + 1, objFLD) ' 再帰呼び出し Next End Sub
使用例
●呼び出し例
Call Sample("C:\Project")
●表示例
(1)Test1\ (2)FrontPageTempDir\ (2)WindowsApplication1\ (3)AssemblyInfo.cs (3)Form1.cs (3)Form1.resx (3)licenses.licx (3)WindowsApplication1.csproj (3)WindowsApplication1.csproj.user (3)WindowsApplication1.sln (3)WindowsApplication1.suo (3)bin\ (4)Debug\ (5)WindowsApplication1.exe (5)WindowsApplication1.pdb (3)obj\ (4)Debug\ (5)WindowsApplication1.exe (5)WindowsApplication1.exe.incr (5)WindowsApplication1.exe.licenses (5)WindowsApplication1.Form1.resources (5)WindowsApplication1.pdb (5)WindowsApplication1.projdata (5)temp\ (5)TempPE\ |
補 足