VBScriptでファイルの一覧を取得する

ファイルの一覧を取得し、表示するプログラムです。

このVBSファイルを配置したフォルダ内のファイル一覧を取得し、メッセージボックスで表示します。

プログラム例1

ファイル名:GetFileName01.vbs

Option Explicit

 

Dim fso ,folder ,file

 

‘FileSystemObjectオブジェクトの生成
Set fso = CreateObject(“Scripting.FileSystemObject”)

 

‘カレントフォルダのオブジェクトをセット
Set folder = fso.GetFolder(“.\”)

 

‘フォルダ内のファイル名を取得
For Each file In folder.Files
    ‘取得したファイルのファイル名を表示
    Msgbox file.Name
Next

 

Set fso = Nothing

取得したファイルは、ファイル名以外にも、以下のプロパティを取得することが可能です。

Attributes 指定したファイルの属性を設定するか返します。
DateCreated ファイルの作成日時を返します。
DateLastAccessed ファイルに最後にアクセスした日時を返します。
DateLastModified ファイルの最終更新日時を返します。
Drive ファイルがあるドライブのドライブ文字を返します。
Name ファイル名前を返します。
ParentFolder ファイルの親のフォルダー オブジェクトを返します。
Path ファイルのパスを返します。
ShortName ファイルの短い名前を返します。
ShortPath ファイルの短いパスを返します。
Size ファイルのサイズをバイト単位で返します。
Type ファイルの種類を返します。

プログラム例2

カレントフォルダだけでなく、サブフォルダ内のファイルも再帰的に取得したい場合は、以下のようにGetSubFolder関数を作成し、ファイル名取得が再帰的に実行されるように記述します。

ファイル名:GetFileName02.vbs

Option Explicit

 

Dim fso ,folder

 

‘FileSystemObjectオブジェクトの生成
Set fso = CreateObject(“Scripting.FileSystemObject”)

 

‘カレントフォルダのオブジェクトをセット
Set folder = fso.GetFolder(“.\”)

 

‘ファイル名の一覧を表示
GetSubFolder(folder)

 

Set fso = Nothing

 

‘ファイル名の一覧を取得
Function GetSubFolder(folder)

    Dim file

 

    ‘フォルダ内のファイル名を表示
    For Each file In folder.Files
        Msgbox file.Name
    Next

 

    ‘サブフォルダ内のファイルを再帰的に取得
    For Each file In folder.subFolders
        GetSubFolder(file)
    Next

End Function

 

以上、ファイル一覧を表示するプログラムでした。