読み込んでいます...

原来写过一个File类,这个类的作用就是在Extension中读写本地文件,不过作为浏览器插件,读写本地文件到磁盘就会有一些很不好的问题,这些问题可以总结如下。

  • 写文件要写绝对路径。
  • 不同操作系统有不同的路径。
  • 卸载插件的时候需要手动找到路径删除。

这三点是非常麻烦的,也会造成后期的维护的困难。当然,我们希望的是用户卸载插件的时候连同配置文件一起删除,读写文件也写到安装包路径中。

在Firefox中,有一个XPCOM可以解决这个问题,我们可以通过以下代码获取路径。

const id = test@test.com;

var extension = Components.classes["@mozilla.org/extensions/manager;1"]

.getService(Components.interfaces.nsIExtensionManager)

.getInstallLocation(id)

.getItemLocation(id);

然后,我们可以通过相应的IO类去进行文件的读写,代码如下。

var io = new jguoer.IO();

var file = io.open(extension.path+\\file.txt);

io.write(file,test);

alert(io.read(file));

同样,附上我写的IO类,可以读写文件以及进行一些编码转换,代码我就不贴出来了,好的命名已经解释了一切了。

IO.rar (1.45 kb)

509路过 1评论 Firefox Addon 阅读全文..
  1. 置顶的更新,文章汇总 : GuoJing's Blog | 用心对待每一行代码 @

    [...] Firefox Add-on – IO读写安装包内的文件 [...]

:-D :-? 8) :cry: 8-O :lol: :-x :-| :?: :-P :oops: :roll: :( :) :-o :wink: more »