【VBScript】サブフォルダ配下も含めたファイル一覧をCSV形式で取得


この記事はプロモーションを含みます。

VBScript

ホーム > VBScript 逆引きリファレンス

前回は、サブフォルダ配下も含めたファイル一覧をテキストで出力する方法をご紹介しましたが、今回は、CSV形式で出力する方法をご紹介します。
また、ファイル情報を取得する際に使えるプロパティについてもご紹介したいと思います。

ソースコード

こちらがソースコードになります。
個々の機能の解説については以下をご覧ください。

Option Explicit

' 出力するファイルリスト
Dim fileListName
fileListName = ".\Sample.txt"

' ファイル一覧を取得するパス
Dim fileListPath
fileListPath = "C:\workspace\VBScript"

' ファイルシステムオブジェクトの作成
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")

' ファイルの存在チェック
If(fso.FileExists(fileListName))Then
	' ファイルの削除
	fso.DeleteFile fileListName
End If

' テキストファイルのオープン(追記モード)
Dim fileList
Set fileList = fso.OpenTextFile(fileListName, 8, True)

' ファイル一覧の取得
Call GetFileList(fso.GetFolder(fileListPath))

' ファイルシステムオブジェクトの破棄
Set fso = Nothing

' 処理終了
WScript.Quit

' ファイル一覧の取得関数
Function GetFileList(Byval targetPath)
	Dim folder, file

	' フォルダが存在する場合は、そのフォルダ配下を探索する
	For Each folder In targetPath.SubFolders
		GetFileList(folder)
	Next

	' ファイル一覧の表示
	For Each file In targetPath.files
		fileList.WriteLine(file.ParentFolder & "," & file.Name & "," & file.Size & "," & file.DateLastModified)
	Next
End Function

実行結果

サンプルの実行結果になります。
パス、ファイル名、ファイルサイズ、更新日時がCSV形式で出力されます。

C:\workspace\VBScript\dir1\dir2,dir2.txt,0,2022/01/16 1:09:33
C:\workspace\VBScript\dir1,dir1.txt,0,2022/01/16 1:09:23
C:\workspace\VBScript\folder1,folder1.txt,0,2022/01/16 1:10:14
C:\workspace\VBScript,function.vbs,524,2022/02/21 15:31:21
C:\workspace\VBScript,getFileList.vbs,1090,2022/03/07 4:52:31
C:\workspace\VBScript,main.vbs,350,2022/02/21 15:32:16
C:\workspace\VBScript,Sample.txt,364,2022/03/07 4:52:48
C:\workspace\VBScript,Test.vbs,853,2022/01/18 0:17:25

使用可能なプロパティ

よく使用するプロパティの一覧になります。

名前説明取得例
DateCreatedファイルの作成日時2022/01/16 1:09:33
DateLastAccessedファイルのアクセス日時2022/01/16 1:09:33
DateLastModifiedファイルの変更日時2022/01/16 1:09:33
Driveファイルがあるドライブ名C:
Nameファイル名Test.vbs
ParentFolderパスC:\workspace\VBScript
PathフルパスC:\workspace\VBScript\Test.vbs
Sizeファイルサイズ1234
Typeファイルの種類VBScript Script ファイル

コメント

タイトルとURLをコピーしました