我使用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%\應用程序數據\漫遊\ Mozilla的\火狐\ Profiles文件\ aamu4bzq.default \文件夾\ FILENAME.TXT
6
XUL是一種標記語言,您可以使用它來創建用戶界面。要執行寫入文件等操作,您可以使用XPCOM。其他的一切可以在文檔中找到:
1
我認爲在應用程序之外創建文件夾時,就會出現問題基本目錄。
例如: - 如果要在C:\ TEMP內創建文件夾,可能會失敗
+0
是的,你是對的,訪問只限於給定的路徑。 – 2012-03-23 11:40:18
相關問題
- 1. 使用mozilla xul讀取和寫入文件
- 2. 使用jQuery讀取/寫入文件
- 3. 使用功能讀取/寫入文件
- 4. 使用Javascript讀取/寫入文件 - IE6
- 5. 使用mex讀取和寫入文件
- 6. 使用JavaScript寫入或讀取文件
- 7. 使用ADT讀取/寫入文件
- 8. 如何讀取和寫入文件
- 9. C++如何讀取和寫入文件
- 10. 如何讀取/寫入xml文件?
- 11. 如何讀取,寫入gwan的文件
- 12. 如何讀取/寫入ASCII .pgm文件
- 13. 如何讀取和寫入XML文件?
- 14. 如何讀取和寫入文件
- 15. 如何使用JavaScript從文本文件讀取/寫入?
- 16. 如何使用Firefox插件從硬盤讀取/寫入文件?
- 17. 讀取和寫入文件
- 18. 寫入/讀取小文件
- 19. NSString讀取/寫入文件
- 20. 讀取/寫入bmp文件
- 21. Java:文件讀取/寫入
- 22. 讀取寫入文件Substitution_Ciphers
- 23. Java - 文件讀取/寫入
- 24. 讀取和寫入文件
- 25. 讀取/寫入文件頭
- 26. 讀取和寫入文件
- 27. 寫入和讀取文件
- 28. 如何使用boost庫讀取和寫入.ini文件
- 29. 如何使用MSSQL 2000讀取/寫入文件?
- 30. 如何使用System.IO.Compression讀取/寫入ZIP文件?
謝謝,但是如何指定創建的文件的路徑? – 2012-03-13 10:07:58
@AshrafBashir:從上面的第一個鏈接:'var f = new FileUtils.File(「c:\\ data」);' – 2012-03-13 10:24:40