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 オブジェクトを取得するプログラムでした。