http://www-al.nii.ac.jp/~kameda/blog/KMKM/KMKM0711030805.htm Nov 03, 2007Firefoxのjavascriptでローカルファイルにアクセスする方法まとめまとめというかソースコードを載せる。
filePathはフルパスのみ可能です。 ファイル入力返り値が内容です。function open_file(filePath){ var data = ""; try { netscape.security.PrivilegeManager.enablePrivilege ('UniversalXPConnect'); var file = Components.classes["@mozilla.org/file/local;1"].createInstance (Components.interfaces.nsILocalFile); file.initWithPath (filePath); var fstream = Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance(Components.interfaces.nsIFileInputStream); fstream.init(file, -1, 0, 0); var charset = "UTF-8"; const replacementChar = Components.interfaces.nsIConverterInputStream.DEFAULT_REPLACEMENT_CHARACTER; var is = Components.classes["@mozilla.org/intl/converter-input-stream;1"].createInstance(Components.interfaces.nsIConverterInputStream); is.init(fstream, charset, 1024, replacementChar); var str = {}; while (is.readString(4096, str) != 0) { data += str.value; } } catch (e) { throw e; } return data; } ファイル出力第二引数で内容を与えます。function writeToFile (filePath, content) { try { netscape.security.PrivilegeManager.enablePrivilege ('UniversalXPConnect'); var file = Components.classes["@mozilla.org/file/local;1"].createInstance (Components.interfaces.nsILocalFile); file.initWithPath (filePath); if (! file.exists ()) file.create (0, 0664); var out = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance (Components.interfaces.nsIFileOutputStream); out.init (file, 0x20 | 0x02, 00004, null); var charset = "UTF-8"; var conv = Components.classes["\@mozilla.org/intl/converter-output-stream;1"].createInstance(Components.interfaces.nsIConverterOutputStream); conv.init(out, charset, 0, 0x0000); conv.writeString(content); conv.close(); } catch (e) { throw e; } } 参考文献関連エラー
Posted at 08:05
| WriteBacks (1)
| Edit
ローカルファイルへの書き込み(その2)できたー!!! というか、発見したー!! かめだあきひろさん、ありがとうございました! いやね、他にもたくさんサンプルを挙げてくれているサイトやブログさんはあるのですよ。本家とかね。 でも、自分の環境でやるとうまく動いてくれない。。 さて、ローカルファイルへ
Posted by awacio.log at 2010/02/21 (Sun) 11:51:12
http://www-al.nii.ac.jp/~kameda/blog/KMKM/KMKM0711030805.trackback
|