[VBA,VB.NET,C#,PHP]プログラムTips集

[VBA,VB.NET,C#,PHP]プログラムのちょっとしたテクニック

フォルダ内の全ファイルを取得する方法(サブフォルダも含めて取得)

' フルパスを格納するリスト
Public lstFullPath As Collection

' 呼出し:ルートパスを指定
Public Sub GetAllFilePath()
    ' 初期化
    Set lstFullPath = New Collection
    ' ルートパスを指定(最後の\マークは不要)
    Call GetSubDir("c:\root\src")
End Sub

' サブフォルダを含めてファイルのフルパスを全取得
Sub GetSubDir(Path As String)
    Dim buf As String, f As Object
    buf = Dir(Path & "\*.*")
    Do While buf <> ""
	' フルパスを格納
	Dim sCurFullPath As String
            sCurFullPath = Path & "\" & buf
            lstFullPath.Add(sCurFullPath )
            ‘次ファイルを検索
            buf = Dir()
    Loop
    ‘ サブフォルダへ移動
    With CreateObject("Scripting.FileSystemObject")
        For Each f In .GetFolder(Path).SubFolders
            Call GetSubDir(f.Path)
            DoEvents
        Next f
    End With
End Sub