javascript Windows環境でローカルPCへのテキストファイルの作成保存
htmlでもhtaでも動作する。
ActiveXを使用するのでhtmlをIEで実行させた場合には、実行時に警告がでる。
また、OpenTextFile メソッドの引数の定義を定数(const)にしたところhtaで動作しなかったので変数としました。
<!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=shift_jis"> <script type="text/javascript"> var file; // http://msdn.microsoft.com/ja-jp/library/cc428044.aspx // OpenTextFile メソッド var forReading, forWriting, forAppending var tristateUseDefault, tristateTrue, tristateFalse //第2引数 ファイル入出力モード forReading = 1; forWriting = 2; forAppending = 8; //第3引数 ファイルが存在しない場合新規ファイルを作成するか否か(省略時は否:false) //第4引数 ファイル形式(省略時は、0) tristateUseDefault = -2; //システムデフォルト(Shift_JIS) tristateTrue = -1; //Unicodeファイル tristateFalse = 0; //ASCII function writeAll(filename, content) { var fso = new ActiveXObject('Scripting.FileSystemObject'); var file = fso.OpenTextFile(filename, forWriting, true, tristateUseDefault); file.Write(content); file.Close(); alert('書き込み終了'); } function appendLine(filename, first, second) { var fso = new ActiveXObject('Scripting.FileSystemObject'); var file = fso.OpenTextFile(filename, forAppending, true, tristateUseDefault); file.WriteLine(first); file.WriteLine(second); file.Close(); alert('書き込み終了'); } file = 'C:\\work\\javascript\\test.txt' writeAll(file, 'この文章をテキストファイルに書き込みます。\n'); appendLine(file, '追加行1行目', '追加行2行目'); </script> </head> </html>