ファイル一覧を取得する
概要
深さを指定してファイル一覧を取得し、テキストファイルout.txt
へ出力する。
ファイル一覧を取得する
Const TOP_PATH = "."
は、現在の作業フォルダを起点として探索する。
Const TOP_PATH = "C:¥test"
などフォルダを直接指定しても良い。
SEARCH_DEPTH
は探索する深さを指定する。0だとサブフォルダ内を探索しない。-1だと無限に深く探索する。
'ファイル一覧をテキストファイルに出力する
'再起呼び出しを使用
Const TOP_PATH = "." '探索を開始するトップパスに作業フォルダを指定
Const SEARCH_DEPTH = 1 '1階層下のサブフォルダ内まで探索する
Dim fso 'ファイルシステムオブジェクト
Dim txt '出力用ファイルストリーム
'準備
Set fso = CreateObject("Scripting.FileSystemObject")
Set txt = fso.OpenTextFile("out.txt", 2, True)
'実行
Call GetList(TOP_PATH, SEARCH_DEPTH)
'後処理
txt.Close
Set fso = Nothing
Set txt = Nothing
Msgbox "完了"
Function GetList(path, depth)
'フォルダ内のファイル一覧を出力
Dim fol 'フォルダオブジェクト
Dim f 'ファイル、フォルダ
'フォルダオブジェクトを取得
Set fol = fso.GetFolder(path)
'フォルダ内のファイル名を出力
For Each f In fol.Files
Print f.Name
Next
If depth = 0 Then
'探索の最下層であれば終了
Exit Function
Else
'再起呼び出しでサブフォルダ内のファイル一覧を出力
For Each f In fol.SubFolders
Call GetList(f.Path, depth - 1)
Next
End If
End Function
Function Print(str)
'ファイルに出力する
txt.WriteLine(str)
End Function
なおフォルダ内のファイル一覧を取得するだけなら、VBScriptを使わなくてもコマンドプロンプトから
dir /B >> out.txt
とすれば簡単に取得できる。