はじめに
LocalファイルにJavascriptを使って書き込みする方法をまとめました。
ただし、セキュリティ上必ず承認が必要となってきます。そのセキュリティを回避する方法は今回説明しません。
関連リンク
関連リンクを下記に載せておくので、必要であれば参考にしてください。。
- Local上にて複数のHTMLコンテンツのデータを共有する方法(Store.js)
- Local環境のXMLファイルからJavascriptを使って情報を取得する方法
- Local環境でのCookie / WebStorage 挙動
やりたいこと
ブラウザにてHTMLファイル(HTML:write_to_local_file.html)に埋め込んだJavascriptを動かして、ローカル上にあるtextファイル(text.txt)へ情報の書き込みをしたい。
コード実装
write_to_local_file.html
<!DOCTYPE html>
<html lang="ja" dir="ltr">
<head>
<meta charset="utf-8">
<title>Test for writing to local gile</title>
</head>
<body>
<script type="text/javascript">
// Scripting.FileSystemObject というオブジェクトを作成(JavaScript内でWSHを使ってファイルを扱う)
var fs = new ActiveXObject("Scripting.FileSystemObject");
// text.txtという新規のファイルを作成
var file = fs.CreateTextFile("text.txt");
// texxt.txtファイルへ書き込み
file.Write("Complete, written!");
// text.txtファイルを閉じる
file.Close();
</script>
</body>
</html>
実行
IE11にて実行しました。
以下のような警告が出て"はい"をクリックすると、その下のテキストファイルの画像の通り、書き込みが完了しました。
まとめ
一般的に使われているブラウザを使用する場合はセキュリティ上毎回承認が必要になるので、この方法だけでは完全自動化することはできません。
回避する方法としては、Javascriptの実行環境を構築する、もしくは"はい"のボタンを自動で押す何かをつける、と今思いつくのはこれくらいです。
chromeブラウザを使用できる場合は、FileSystemAPIというものを使用するとできるというのを見かけましたので参考までに。。。
参考
- JavaScript(WSH) スクリプトでファイル入出力