ファイルシステム(FileSystem)


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 ) ) { }



AtEndOfStream


ファイルの末尾かどうか返す。
fp = OpenTextFile( "d:/test.txt" ); while ( !fp.AtEndOfStream ){ var str = stdin.ReadLine(); stdout.WriteLine("Line " + (stdin.Line - 1) + ": " + str); }



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;