指定したフォルダに属するサブフォルダやファイル名をすべて表示する Hit Counter

対象バージョン : 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\
 

補 足


目次へ戻る