WARNING
ActiveXObject を利用すると ブラウザー経由で
Local マシン上でファイル操作, プログラムの実行できてしまう
( だから Browser の警告がでる )
■ DeleteFolder
SYNTAX
DeleteFolder(
path, // 削除する Folder( 最後の要素に * を使用可能 )
[, force ] // 読み取り専用のファイルも消す Default: false
)
var fs = new ActiveXObject("Scripting.FileSystemObject");
fs.DeleteFolder( "d:/foo" );
// wildcard 指定
fs.DeleteFolder( "d:/foo*" );
// Directory 内のファイルが使用中ならば, 削除できない( "書き込みできません" )
WARNING
存在しないフォルダを削除するとエラーになる
// パスが見つかりません
fs.DeleteFolder( "d:/foo" );
// チェックすること
if ( fs.FolderExists( "d:/foo" ) ) {
fs.DeleteFolder( "d:/foo" );
}
■ DeleteFile
SYNTAX
DeleteFile(
path // 削除するファイルパス
[, force ] // 読み取り専用のファイルも消す Default: false
);
var fs = new ActiveXObject("Scripting.FileSystemObject");
fs.DeleteFile( "d:/foo.txt" );
// 読み取り専用は消せない.
// ERROR : 書込みできません
fs.DeleteFile( "d:/foo.txt" );
// ないファイルを消すとエラー
// ERROR : ファイルがみつかりません
fs.DeleteFile( "d:/foobar", 1 );
パターンにマッチしたファイルを削除する。 ( フォルダは削除されない )
// test 以下のすべてのファイル
fs.DeleteFile( "d:/test/*", 1 );
// .txt を削除
fs.DeleteFile( "d:/test/*.txt", 1 );
■ CopyFolder
SYNTAX
CopyFolder ( src, dst[, overwrite] );
DESC
ディレクトリをコピーする。
fs.CopyFolder( "d:/src", "d:/dst", true );
■ CopyFile
SYNTAX
CopyFile ( src, dst[, overwrite] );
DESC
src の file を dst で指定したパスへコピーする。
ディレクトリをコピーするには CopyFolder を使う。
overwrite : DEFAULT true
// "c:/src.txt" を "d:/dst.txt" に copy
fs.CopyFile( "c:/src.txt", "d:/dst.txt" );
// すでにファイルがあれば上書き
fs.CopyFile( "c:/src.txt", "d:/dst.txt" );
// overwrite = false にすると , ERROR になる
fs.CopyFile( "c:/src.txt", "d:/dst.txt", false );
// dst の末尾に [/] をつけると Directory 指定とみなされる
// RET: d:/src.txt
fs.CopyFile( "c:/src.txt", "d:/" );
// wildcard を指定すると コピー元に複数の指定ができる
fs.CopyFile( "c:/*.txt", "d:/" );
// このとき dst は Directory として扱われる
fs.CopyFile( "c:/*.txt", "d:/test" );
// マッチするファイルがないと ERROR
fs.CopyFile( "c:/*.txt", "d:/test" );
// dst のパスがないと ERROR
fs.CopyFile( "c:/*.txt", "d:/foobar" );
■ MoveFile
SYNTAX
MoveFile( src, dst );
DESC
src から dst へファイルを移動
var fs = new ActiveXObject("Scripting.FileSystemObject");
WARNING
// dst に既にファイルがあるとエラー
fs.MoveFile( "c:/foo.txt", "d:/bar.txt" );
// ERROR: 既に同名のファイルがあります
fs.MoveFile( "c:/foo.txt", "d:/bar.txt" );
// dst が Directory 名でもエラー
fs.MoveFile( "c:/foo.txt", "d:" );
// [ / ] で終われば OK
fs.MoveFile( "c:/foo.txt", "d:/" );
// 同じディレクト内ならばリネームとなる
fs.MoveFile( "c:/src.txt", "c:/dst.txt" );
■ FolderExists
SYNTAX
FolderExist( path )
DESC
Path の Directory があるか返す
RET
true : ある
false : ない
■ FileExists
SYNTAX
FileExists( path )
DESC
Path の File があるか返す
RET
true : ある
false : ない
if ( fs.FileExists( path ) ) {
}
■ OpenTextFile
SYNTAX
OpenTextFile(
OpenTextFile( file[, iomode[, isCreate[, format] ] ] )
);
OpenTextFile(
file, // path
iomode, // 1:R, 2:W, 8:A
isCreate, // true: Fileがなければつくる
// false:つくらない ( Default: false )
);
DESC
File を開く。
WARNING
指定したパスのディレクトリがない場合はエラーになる。
先にディレクトリをつくる必要がある
fs.OpenTextFile( "d:/foo/bar/goo/foo.txt", 2, true );
// ReadOnly で "d:/foo.txt" をひらく
fs.OpenTextFile( "d:/foo.txt", 1 );
// WriteMode ( File がないならつくる )
fs.OpenTextFile( "d:/foo.txt", 2, true );
// File を開いてかく
var fp = fs.OpenTextFile("d:/foo.txt", 2, true );
fp.WriteLine( "test" );
fp.Close();
// utf-16 のファイルを開く
var fp = fs.OpenTextFile("d:/foo.txt", 2, true, -1 );
WARNING
// ないファイルを開くと ERROR
fs.OpenTextFile( "d:/foo.txt", 1, false );
■ GetFile
SYNTAX
GetFile( path )
DESC
path で指定した File Object を取得する
var o = fs.GetFile( "d:/test.txt" );
// プロパティにアクセスする
o.Path;
//
■ GetFolder
SYNTAX
GetFolder( path )
DESC
Folder Object を取得する
WARNING
path が Directory でない場合はエラーとなる。
var fs = new ActiveXObject("Scripting.FileSystemObject");
var f = fs.GetFolder ( "c:/Documents and Settings/" );
// コレクションを列挙するには
// Enumerator ( Iterator ) をつかう
var fc = new Enumerator ( f.SubFolders );
// File を列挙
var itrF = new Enumerator ( f.Files );
// Sub Directory をなめる
for ( ; !fc.atEnd(); fc.moveNext () ){
// Enumerator の各アイテムをとるには item()
// Folder Object がかえる
var oFolder = fc.item();
// "Name" Property をとる
// RET: All Users
WScript.echo( fc.item().Name );
// Path
// RET: C:\Documents and Settings\All Users
WScript.echo( fc.item().Path );
// 最終更新日
// 2000/05/24 7:41:57
WScript.echo( fc.item().DateLastModified );
}
■ Folder
フォルダをあらわすオブジェクト
パス名から参照をとる
var d = fs.GetFolder( "c:/Windows/" );
プロパティ
// フルパス
d.Path;
// フォルダ名
d.Name
// 直下のフォルダ
d.SubFolders;
var fs = new ActiveXObject("Scripting.FileSystemObject");
var f = fs.GetFolder ( "c:/Documents and Settings/All Users/" );
// Folder のファイルのリストをかえす ( 隠しファイルなどすべて含む )
var fc = new Enumerator ( f.Files );
for ( ; !fc.atEnd(); fc.moveNext () ){
// コレクションから File Object をとりだす
var file = fc.item();
// Name Property
WScript.echo( file.Name );
// 最終更新日
file.DateLastModified;
}
■ File
DESC
var f = fs.GetFile ( "d:/test.txt" );
// ファイル, フォルダの種類に関する情報を返す
// xxx.txt -> "テキスト文書" を返す
f.Type;
// ファイルのフルパス
f.Path;
// 最終更新日
f.DateLastModified;
// サイズ ( byte 単位 )
f.Size;