【问题标题】:Filesystem operations through Thunderbird Extension通过 Thunderbird 扩展进行文件系统操作
【发布时间】:2014-05-09 23:46:29
【问题描述】:

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

如您所知,Mozilla 扩展由 javascript 代码组成。 所以我找了这个,发现了一些关于 ActiveXObject 的代码,它不适用于 Thunderbird。

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

【问题讨论】:

    标签: javascript thunderbird thunderbird-addon


    【解决方案1】:

    首先,阅读extensions in general(Firefox 文档也适用于 Thunderbird,除了插件 SDK,它不适用于 Thunderbird;走 XUL 覆盖路线)。

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

    【讨论】:

    • 感谢您的回复,希望有一些关于创建、删除文件夹等的信息:)
    【解决方案2】:

    这是我的扩展程序中的代码 sn-p。我在 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(); 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-15
      • 2012-06-14
      • 2016-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-01
      相关资源
      最近更新 更多