0

我想通过 Thunderbird 插件对我的文件系统进行一些操作。例如,在特定位置创建一个文件夹,并在此文件夹中创建一个包含来自 Thunderbird 的一些数据的文本文件。

如您所知,Mozilla 扩展由 javascript 代码组成。所以我找了这个,找到了一些关于 ActiveXObject 的代码,这对 Thunderbird 不起作用。

有什么想法我应该怎么做?

4

2 回答 2

1

首先,阅读一般扩展(Firefox 文档也适用于 Thunderbird,除了 Add-on SDK,它不适用于 Thunderbird;走 XUL 覆盖路线)。

然后有多种方法可以执行文件 I/O,特别是 XPCOM 的东西和OS.File

于 2014-05-09T23:50:05.890 回答
0

这是我的扩展程序中的代码片段。我在 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(); 
于 2014-05-10T16:16:14.487 回答