VBScript File オブジェクトを取得

VBScriptでFileオブジェクトを取得し、ファイルの作成日、更新日、ファイルサイズなどを取得するプログラムを作成します。

 

GetFileメソッド

FileSystemObjectを使用して、File オブジェクトを取得します。

object.GetFile(path)

objectには、FileSystemObject の名前を指定します。

pathには、取得したいファイルのパスを含む名前を指定します。

ファイル名のみ指定した場合は、カレントフォルダ内のファイルが対象となります。

pathで指定したファイルが存在しない場合は、エラーが発生します。

 

プログラム例

Set fso = CreateObject(“Scripting.FileSystemObject”)
Set myfile = fso.GetFile(“c:\temp\test.txt”)
MsgBox myfile.Size

 

Set myfile = Nothing
Set fso = Nothing

使用例では、取得したファイルオブジェクトのファイルサイズをメッセージ表示しています。

Fileオブジェクトのプロパティ

Fileオブジェクトのプロパティです。

プロパティ 内容
Attributes 属性を取得または設定
DateCreated 作成日時を取得
DateLastAccessed 最後にアクセスした日時を取得
DateLastModified 最後に更新された日時を取得
Drive 指定したファイルが存在するドライブ文字(「C:」「D:」など)を取得
Name 指定したファイルの名前を取得または設定
ParentFolder 指定したファイルが格納されているフォルダを取得
Path ファイルのパスを取得
ShortName MS-DOS形式のファイル名を取得
ShortPath MS-DOS形式のパスを取得
Size ファイルの容量をバイト単位で取得
Type ファイルの種類をあらわす文字列を取得

■Attributesプロパティ

ファイル属性の取得、設定ができます。

ただしこのプロパティで扱う属性は、「読み取り専用」や「隠しファイル」など、オン/オフのみで表される情報です。

ファイルの日付やパスなどの情報は含まれません。

各属性には対応する数値が決められており、Attributesプロパティは有効となっているすべての属性の値を合計した数値を返します。

属性の名前 取得 設定 内容
ReadOnly 1 読み取り専用ファイル
Hidden 2 隠しファイル
System 4 システムファイル
Volume 8   ディスク ドライブのボリュームラベル
Directory 16   フォルダーまたはディレクトリ
Archive 32 前回のバックアップ以降に変更されていれば1
Alias 64   リンクまたはショートカット
Compressed 128   圧縮ファイル

 

Attributesプロパティのプログラム例

Attributesプロパティのプログラム例です。

Set fso = CreateObject(“Scripting.FileSystemObject”)
Set myfile = fso.GetFile(“c:\temp\test.txt”)

 

‘ReadOnlyがオンだったらオフにする
If myfile.Attributes AND 1 THEN
    myfile.Attributes = myfile.Attributes + 1
‘ReadOnlyをオンにする

Else
    myfile.Attributes = myfile.Attributes – 1
End If

 

Set myfile = Nothing
Set fso = Nothing

 

実行すると、「c:\temp\test.txt」ファイルは、読み取り専用に変更され、再度実行すると読み取り専用に設定されます。

 

Fileオブジェクトのメソッド

Fileオブジェクトのメソッドです。

メソッド 内容
OpenAsTextStream テキストファイルを開く
Copy ファイルをコピーする
Delete ファイルを削除する
Move ファイルを移動する

■OpenAsTextStream

OpenAsTextStreamメソッドは、ファイルを開きTextStreamオブジェクトを返すメソッドです。

Fileオブジェクトで表されているファイルを開くため、パラメータでのファイル指定はありません。

ファイル名のみ指定した場合は、カレントフォルダ内のファイルが対象となります。

myfile.OpenAsTextStream([iomode] [, format])

iomodeには、入出力モードを指定します。

定数 内容
ForApending 1 追記モード(最後の行に続けて書き込む)
ForReading 2

読取専用モード

※デフォルト値

ForWriting 8 上書きモード

formatにはファイル形式を指定します。

定数 内容
TristateFalse -2 ASCII
TristateTrue -1 Unicode
TristateUseDefault 0 システムの規定値

■Copy、Delete、Move

Copy、Move、Deleteの各メソッドは、それぞれファイルのコピー、移動、削除を行うメソッドです。

複数のファイルを処理する機能はありません。

 

まとめ

VBScriptでFileオブジェクトを取得し、ファイルの作成日、更新日、ファイルサイズなどを取得する方法を説明しました。

Attributesプロパティでは、属性を変更する方法も紹介しました。

 

以上、VBScriptでFile オブジェクトを取得するプログラムでした。