Windows Scripting Host 4

File System(2)

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

Nameファイルの名前
ShortName8.3形式のファイル名
Pathファイルのフルパス
ShortPath8.3形式のフルパス
Sizeバイト単位のファイルサイズ
Typeファイルの種類 ex) "GIF イメージ"
Attributesファイルの属性
DateCreated作成日時
DateLastModified更新日時
DateLastAccessed最終アクセス日時
Driveファイルが格納されているDriveオブジェクト
ParentFolderファイルが格納されているFolderオブジェクト

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

Nameフォルダの名前
ShortName8.3形式のフォルダ名
Pathフォルダのフルパス
ShortPath8.3形式のフルパス
Sizeバイト単位のフォルダサイズ
Attributesフォルダの属性
DateCreated作成日時
DateLastModified更新日時
DateLastAccessed最終アクセス日時
Driveフォルダが格納されているDriveオブジェクト
ParentFolderフォルダが格納されているFolderオブジェクト
IsRootFolderルートフォルダかどうかを返す
Filesフォルダ内のFileオブジェクトのコレクション
SubFoldersフォルダ内のFolderオブジェクトのコレクション

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

TotalSizeバイト単位の総ディスク容量
FreeSpaceバイト単位の使用可能なディスク容量
AvailableSpaceバイト単位のユーザが使用可能なディスク容量
DriveLetterドライブ名 ex) "C"
Pathパスを返す ex) "C:"
VolumeNameボリューム名
ShareNameドライブのネットワーク共有名
RootFolderルートフォルダを表すFolderオブジェクト
DriveTypeドライブの種類を示す値を整数で返す
FileSystemファイルシステムを表す文字列 ex) "FAT"
SerialNumberディスクボリュームのシリアル番号
IsReady準備できているかどうかを返す

ファイル・フォルダの属性

ファイル・フォルダの属性は次の値の加算によって表されます。

0通常のファイル
1読み取り専用ファイル
2隠しファイル
4システムファイル
8ディスク ドライブ ボリューム ラベル
16フォルダ
32ファイルが前回のバックアップ以降に変更されているかどうか
64ショートカット
128圧縮ファイル

例えば、読み取り専用で隠しファイルなら3が返ります。
そのファイルが隠しファイルかどうかを判定するには次のようにします。

if(f1.Attributes & 2)
    WScript.Echo(f1.Name + "は隠しファイル");
else
    WScript.Echo(f1.Name + "は隠しファイルでない");
ドライブの種類

DriveTypeプロパティは整数を返しますが、 それぞれの値は次のドライブの値と対応しているようです。

0不明
1リムーバブル ディスク
2ハード ディスク
3ネットワーク ドライブ
4CD-ROM
5RAM ディスク

日時を返すプロパティ

各オブジェクトの日時を返すプロパティは、 実はVBの日付(時刻)型を返します(12/29/01)。
したがって次のようなことはできません。
var fs = WScript.CreateObject("Scripting.FileSystemObject");
var windir = fs.GetFolder("c:\\windows");
var d = windir.DateLastModified;    //VBの日付型
WScript.Echo(d.getYear());          //エラー not a Date object
いったんStringオブジェクトにしてからDateオブジェクトにすることはできます。
var strdate = "" + windir.DateLastModified; //Fri Dec 29 18:32:46 UTC+0900 2000
var d = new Date(strdate);
WScript.Echo(d.getYear());
WSH2.0が使える人はここだけでもVBScriptにするとよいでしょう。
scripts/getyear.wsf
-------------------------------------------------------------
<job id="getYear">
<script language="VBScript">
 //VBのDate型の年を返す関数
 function vbgetYear(vbdate)
    vbgetYear = Year(vbdate)
 end function
</script>

<script language="JavaScript">
 var fs = WScript.CreateObject("Scripting.FileSystemObject");
 var windir = fs.GetFolder("c:\\windows");
 WScript.Echo(vbgetYear(windir.DateLastModified));
</script>
</job>

first, prev, next, noframe, exit
Written 6/20/98