我有一个使用外部可执行文件来改变邮件正文的Thunderbird扩展。目前,我做一个黑客作业,只是把这个可执行文件在/tmp/someBinary
,并调用它像这样:如何通过URI引用外部二进制文件?
var exe = FileUtils.File("/tmp/someBinary");
var proc = Components.classes["@mozilla.org/process/util;1"]
.createInstance(Components.interfaces.nsIProcess);
proc.init(exe);
var args = [msgBody.path];
proc.run(true, args, args.length);
这显然是愚蠢的,这将是很好通过URI来调用它,并且与应用捆绑的可执行文件。可悲的是,我的有限的JS意味着我只想出以下几点:
var URL = ios.newURI("chrome://myExtension/content/someBinary",null,null);
var exe = URL.QueryInterface(Components.interfaces.nsIFileURL).file;
但这不是很正确。有没有正常的方法来完成这件事?
尝试类似这样var nsIFileS = Components.interfaces.nsIFileURL;然后使用nsIFileS.init(...)使用URL – ama2 2012-07-16 18:48:08