2.12 ファイルの情報を見る
 ファイルの種類やサイズ、作成日などのファイルの情報を調べるときの方法です。ファイルの情報を調べるには、まずファイルシステムオブジェクトのGetFileメソッドでファイルの情報を取得した後、取得したファイルオブジェクトのSizeDateCreatedなどのプロパティを見ればOKです。

 なお、このメソッドを使うとアンチウィルスが悪さをしたと勘違いし「ウィルスかもしれません!」なんて警告メッセージが出るかも知れません。
使用例
 ファイルの情報を調べる例です。例は、プログラムがあるフォルダ内に(プログラムが保存されているフォルダ内に)あるファイルの情報を取得し、その内容をコンソール(プロンプト画面)に表示するという処理をしています。情報を見たいファイルは、プログラム起動時にパラメタで与えます。

 基本的な内容(エラー回避や起動パラメタの受け取り、他)は2.5 テキストファイルの行単位の読み込みと同じなので、細かい説明は省略します。(決して手抜きじゃないです…)

 この例でのポイントは2つ。一つ目は、Fの所でGetFileメソッドを使いファイルの情報を得ている所です。パラメタはファイルのフルパスを指定します。このメソッドを実行すると、ファイルの情報をファイルオブジェクトとして取得できます。

 ファイルオブジェクトを取得したら、あとはこのオブジェクトのプロパティを参照すれば各種の情報を得る(Hの部分)ことができます。例では、ファイル名(Name)、ファイルサイズ(Size)、種類(Type)、作成日(DateCreated)、最終アクセス日(DateLastAccessed)、最終更新日(DateLastModified)を表示しています。

 ■VBScriptの記述例
Option Explicit

Dim objParm

'@パラメタ情報の保存
Set objParm = Wscript.Arguments

'A取得したパラメタが1コ以外のときはエラー
If objParm.Count <> 1 Then
WScript.echo "パラメタは必ず1つです(汗)"
Else
'B取得したパラメタが1コのときはOK
   Call prcFileInformation
End If

Set objParm = Nothing

'これ以降はCallなどで呼び出さない限り実行されない

'=============================================================
'以降はファイル情報の取得用プロシージャ
'上のBから呼び出される
'=============================================================
Sub prcFileInformation()

    'Cファイルの有無を調べるために定義
    On Error Resume Next

    Dim objFileSys
    Dim objFile
    Dim intSep
    Dim strScriptPath
    Dim strCheckPath

    Set objFileSys = CreateObject("Scripting.FileSystemObject")

   'Dプログラムが保存されているフォルダを取得します
    strScriptPath = Replace(WScript.ScriptFullName,WScript.ScriptName,"")

    'Eファイルのフルパスを作成します
    strCheckPath = objFileSys.BuildPath(strScriptPath,objParm(0))

    'FGetFileでファイルの情報を得ます
    Set objFile = objFileSys.GetFile(strCheckPath)

    'Gファイル有りのときはErr.Numberが0
    If Err.Number = 0 then

    'Hファイルに関する各種の情報を表示します
       WScript.echo "ファイル名  :" & objFile.Name
       WScript.echo "サイズ    :" & objFile.Size
       WScript.echo "種類     :" & objFile.Type
       WScript.echo "作成日    :" & objFile.DateCreated
       WScript.echo "最終アクセス日:" & objFile.DateLastAccessed
       WScript.echo "最終更新日  :" & objFile.DateLastModified

    Else
      'Iファイルが無いときのエラーメッセージを表示します
       WScript.echo "ファイル" & objParm(0) & "は、ありません(汗)"
   End If

   Set objFile = Nothing
   Set objFileSys = Nothing

End Sub

 ■JScript(JavaScript)の記述例
//@パラメタ情報の保存
var objParm = WScript.arguments;

//A取得したパラメタが1コ未満のときはエラー
if (objParm.length!=1) {
   WScript.echo("パラメタが足りません(汗)");
} else {
//B取得したパラメタが1コのときはOK
   prcFileInformation();
}

//オブジェクト破棄
objParm = null;

//これ以降は呼び出さない限り実行されない

//=============================================================
//以降はファイル情報の取得用プロシージャ
//上のBから呼び出される
//=============================================================
function prcFileInformation() {

    var objFileSys;
    var objFile;
    var intSep;
    var strScriptPath;
    var strCheckPath;

    objFileSys = new ActiveXObject("Scripting.FileSystemObject");

    //Dプログラムが保存されているフォルダを取得します
    strScriptPath = String(WScript.ScriptFullName).replace(WScript.ScriptName,"");

    //Eファイルのフルパスを作成します
    strCheckPath = objFileSys.BuildPath(strScriptPath,objParm(0));

    try {
       //FGetFileでファイルの情報を得ます
       objFile = objFileSys.GetFile(strCheckPath);

       //Hファイルに関する各種の情報を表示します
       WScript.echo("ファイル名  :" + objFile.Name);
       WScript.echo("サイズ    :" + objFile.Size);
       WScript.echo("種類     :" + objFile.Type);
       WScript.echo("作成日    :" + objFile.DateCreated);
       WScript.echo("最終アクセス日:" + objFile.DateLastAccessed);
       WScript.echo("最終更新日  :" + objFile.DateLastModified);

    } catch(e) {
      //Iファイルが無いときのエラーメッセージを表示します
       WScript.echo("ファイル" & objParm(0) & "は、ありません(汗)");
    }

    objFile = null;
    objFileSys = null;

}
Copyright(C) 1999-2006 結城圭介。 All rights reserved