分かりやすく、使いやすく。

フォルダ内のファイル一覧を取得する

スポンサーリンク

VBScript でフォルダ内のファイルオブジェクトの一覧を取得するには、 Folder オブジェクトの Files プロパティを使用します。

以下のサンプルコードでは、 "c:\temp" 内にあるファイルのオブジェクト一覧を取得し、ファイル名を表示します。

VBScript(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Option Explicit
 
Dim objFileSys
Dim objFolder
Dim objFile
 
'ファイルシステムを扱うオブジェクトを作成
Set objFileSys = CreateObject("Scripting.FileSystemObject")
 
'c:\temp フォルダのオブジェクトを取得
Set objFolder = objFileSys.GetFolder("c:\temp")
 
'FolderオブジェクトのFilesプロパティからFileオブジェクトを取得
For Each objFile In objFolder.Files
    '取得したファイルのファイル名を表示
    WScript.Echo objFile.Name
Next
 
Set objFolder = Nothing
Set objFileSys = Nothing 

上記はファイル名を 1 個ずつダイアログ表示します。もし取得したファイル名の一覧をファイルに出力したい場合、サンプルコードは以下の通りです。このサンプルコードを実行すると、実行した vbs ファイルと同じ場所に log.txt というファイルが作成され、ファイル名の一覧が出力されます。

VBScript(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Option Explicit
 
Dim objFileSys
Dim objFolder
Dim objFile
Dim objOutputTextStream
 
'ファイルシステムを扱うオブジェクトを作成
Set objFileSys = CreateObject("Scripting.FileSystemObject")
 
'ログ出力用 TextStream オブジェクトを作成
'第2引数は 1 :読み取り、2 :上書き、3 :追記。
Set objOutputTextStream = objFileSys.OpenTextFile("log.txt", 2, True)
 
'c:\temp フォルダのオブジェクトを取得
Set objFolder = objFileSys.GetFolder("c:\temp")
 
'FolderオブジェクトのFilesプロパティからFileオブジェクトを取得
For Each objFile In objFolder.Files
    'ファイル名を取得し、ログファイルに出力
    objOutputTextStream.WriteLine objFile.Name
Next
 
'TextStream は Close を忘れずに
objOutputTextStream.Close
 
Set objOutputTextStream = Nothing
Set objFolder  = Nothing
Set objFileSys = Nothing 
スポンサーリンク