我想通過Thunderbird插件在我的文件系統上執行一些操作。 例如,在該文件夾中的特定位置創建一個文件夾,並在文本文件中包含來自thunderbird的一些數據的文本文件 。通過Thunderbird擴展的文件系統操作
如您所知,Mozilla擴展由JavaScript代碼組成。 所以我查找了這個,發現了一些關於ActiveXObject的代碼,它不適用於Thunderbird。
任何想法我應該怎麼做呢?
我想通過Thunderbird插件在我的文件系統上執行一些操作。 例如,在該文件夾中的特定位置創建一個文件夾,並在文本文件中包含來自thunderbird的一些數據的文本文件 。通過Thunderbird擴展的文件系統操作
如您所知,Mozilla擴展由JavaScript代碼組成。 所以我查找了這個,發現了一些關於ActiveXObject的代碼,它不適用於Thunderbird。
任何想法我應該怎麼做呢?
首先,請閱讀extensions in general(火狐文檔同樣適用於Thunderbird,除了附加SDK外,它並不真正與Thunderbird一起使用;轉到XUL覆蓋路由)。
然後有多種方式來執行文件I/O,特別是XPCOM的東西,OS.File
:
這裏是我的擴展的代碼片段。我在Profile目錄中創建文本文件,然後在文件中添加一些文本。
var path = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("ProfD", Components.interfaces.nsIFile).path + "\\";
var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
file.initWithPath(path);
file.append("settings.txt")
file.create(Components.interfaces.nsIFile.NORMAL_FILE_TYPE, 0664)
var outputStream = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream);
outputStream.init(file, 0x04 | 0x10, 0664, 0);
var output = "some text here"
var result = outputStream.write(output, output.length);
outputStream.close();
感謝您的回覆,我希望有一些關於創建,刪除文件夾等信息:) –