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

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

 なお、プログラムのほとんどの部分が2.12 ファイルの情報を見ると同じです。違う部分は、フォルダの情報を得るときにGetFolderメソッド(F)を使っている所です。

 ■VBScriptの記述例
Option Explicit

Dim objParm

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

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

Set objParm = Nothing

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

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

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

    Dim objFileSys
    Dim objFolder
    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))

    'FGetFolderでフォルダの情報を得ます
    Set objFolder = objFileSys.GetFolder(strCheckPath)

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

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

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

   Set objFolder = Nothing
   Set objFileSys = Nothing

End Sub

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

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

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

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

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

    var objFileSys;
    var objFolder;
    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 {
       //FGetFolderでフォルダの情報を得ます
       objFolder = objFileSys.GetFolder(strCheckPath);

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

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

    objFolder = null;
    objFileSys = null;

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