xulを使ってFirefox拡張機能をコードしているので、ローカルファイルからの読み書きが必要です。たとえば、ファイル"temp.txt"を次のディレクトリに作成する方法"c:/ data"?XULでファイルを読み書きするには?
1
A
答えて
4
は、私が興味を持っている人のための解決策を見つけた:
getLocalDirectory : function() {
let directoryService = Cc["@mozilla.org/file/directory_service;1"].getService(Ci.nsIProperties);
let localDir = directoryService.get("ProfD", Ci.nsIFile);
localDir.append("FolderName");
if (!localDir.exists() || !localDir.isDirectory())
localDir.create(Ci.nsIFile.DIRECTORY_TYPE, 0774);
return localDir;
},
writeFile: function(data) {
let myFile = lbbs.files.getLocalDirectory();
myFile.append("FileName.txt");
if (myFile.exists() == false)
myFile.create(Ci.nsIFile.NORMAL_FILE_TYPE, 0774);
Components.utils.import("resource://gre/modules/NetUtil.jsm");
Components.utils.import("resource://gre/modules/FileUtils.jsm");
var ostream = FileUtils.openSafeFileOutputStream(myFile)
var converter = Components.classes["@mozilla.org/intl/scriptableunicodeconverter"].
createInstance(Components.interfaces.nsIScriptableUnicodeConverter);
converter.charset = "UTF-8";
var istream = converter.convertToInputStream(data);
NetUtil.asyncCopy(istream, ostream, function(status) {
if (!Components.isSuccessCode(status))
return;
});
},
readFile: function() {
let myFile = lbbs.files.getLocalDirectory();
myFile.append("FileName.txt");
if (myFile.exists() == false)
myFile.create(Ci.nsIFile.NORMAL_FILE_TYPE, 0774);
var data = "";
var fstream = Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance(Components.interfaces.nsIFileInputStream);
var cstream = Components.classes["@mozilla.org/intl/converter-input-stream;1"].createInstance(Components.interfaces.nsIConverterInputStream);
fstream.init(myFile, -1, 0, 0);
cstream.init(fstream, "UTF-8", 0, 0);
let (str = {}) {
let read = 0;
do {
read = cstream.readString(0xffffffff, str);
data += str.value;
} while (read != 0);
}
cstream.close();
return data;
},
ファイルを今に作成され
:%USER_PROFILE%\のAppData \ローミング\ Mozilla \ Firefox \ Profiles \と\フォルダ\ファイル名.txt aamu4bzq.default
6
XULはマークアップ言語であり、これを使用してユーザーインターフェイスを作成します。ファイルへの書き込みなどを行うには、XPCOMを使用します。他のすべてのドキュメントに記載されています:
1
私は、アプリケーションの外部フォルダを作成するときに問題があるだろうと思いますベースディレクトリ。
例: - C:\ TEMP内にフォルダを作成する場合、失敗する可能性があります。
+0
はい、そうです、アクセスは指定されたパスに制限されています。 –
関連する問題
- 1. JavaScript UTF-8ファイルの読み書きはXULで保存する
- 2. groovyでファイルを読み書きする
- 3. Pythonでcsvファイルに辞書を読み書きする
- 4. フロートのファイルを読み書きする
- 5. Node.jsファイル行を読み書きする
- 6. Cocoaファイルを読み書きする
- 7. 同じファイルを読み書きする
- 8. ファイルの読み書き
- 9. ファイル読み込みと書き込み
- 10. 書き込み中にファイルを読む
- 11. ファイルへの読み書きの高速読み込みと書き込み
- 12. Java - 同時にファイルを読み書きするには?
- 13. C#ファイルを読み取り専用で読み取り/書き込みする
- 14. Linuxカーネルモジュール内でファイルを読み書きする方法は?
- 15. iPhoneアプリケーションでのファイルの読み書き
- 16. ASP.NETで読み書き中にXMLファイルをロックする
- 17. Javaでファイルを同時に読み書きする
- 18. jq .txtファイルを読み込んでjsonファイルに書き込む
- 19. CSVファイルを読み込んでCSVファイルに書き込む
- 20. xmlファイルで読み書きを分ける方法は?
- 21. ファイルから読み込み、Javaのファイルに書き込む
- 22. Visual C++/CLIでファイルに書き込み、ファイルから読み込む方法は?
- 23. HashMapを使ってファイルを読み書きする方法は?
- 24. pbxproj/xcodeprojファイルを読み書きするライブラリですか?
- 25. C#でファイルを読み書きする方法
- 26. JavascriptでExcelファイルを読み書きする
- 27. Silverlight - DataGridでXMLファイルを読み書きする
- 28. cでbmpファイルを読み書きする
- 29. javacriptでXMLファイルを読み書きする
- 30. Azure Workerロールで一時ファイルを読み書きする
ありがとうございますが、作成したファイルのパスを指定する方法はありますか? –
@AshrafBashir:上の最初のリンクから: 'var f = new FileUtils.File(" c:\\ data ");' –