Firefox addon 将chrome文件复制到桌面

Firefox addon 将chrome文件复制到桌面,firefox-addon,Firefox Addon,我试图使用OS.File将chrome路径复制到桌面,但它不断抛出错误。这可能吗 var promise = OS.File.copy('chrome://branding/content/icon16.png', OS.Path.join(OS.Constants.Path.desktopDir, 'copied.png')); promise.then( function(aVal) { console.log('suc') }, function(aReason) {

我试图使用OS.File将chrome路径复制到桌面,但它不断抛出错误。这可能吗

var promise = OS.File.copy('chrome://branding/content/icon16.png', OS.Path.join(OS.Constants.Path.desktopDir, 'copied.png'));
promise.then(
  function(aVal) {
    console.log('suc')
  },
  function(aReason) {
    console.error('FAIL, aReason:', aReason)
    console.error('FAIL, aReason:', aReason.toString())
  }
);

自<代码>chrome://branding/content/icon16.png不是一个文件,我想你不能

但是可以在
NetUtli
OS.File

NetUtil.asynchfetch(“chrome://branding/content/icon16.png,函数(输入流,代码){
var bis=Cc[“@mozilla.org/binaryinputstream;1”].createInstance(Ci.nsIBinaryInputStream);
二、设置输入流(输入流);
var data=新的Uint8Array(bis.available());
bis.readArrayBuffer(data.length,data.buffer);
open(OS.Path.join(OS.Constants.Path.desktopDir,'copied.png'),{write:true,append:false,create:true})(
函数成功(文件){
文件写入(数据);
file.close();
},
功能失败(原因){
控制台日志(原因);
}
)
})

chrome://branding/content/icon16.png
不是一个文件,我想你不能

但是可以在
NetUtli
OS.File

NetUtil.asynchfetch(“chrome://branding/content/icon16.png,函数(输入流,代码){
var bis=Cc[“@mozilla.org/binaryinputstream;1”].createInstance(Ci.nsIBinaryInputStream);
二、设置输入流(输入流);
var data=新的Uint8Array(bis.available());
bis.readArrayBuffer(data.length,data.buffer);
open(OS.Path.join(OS.Constants.Path.desktopDir,'copied.png'),{write:true,append:false,create:true})(
函数成功(文件){
文件写入(数据);
file.close();
},
功能失败(原因){
控制台日志(原因);
}
)
})

chrome://branding/content/icon16.png
不是一个文件,我想你不能

但是可以在
NetUtli
OS.File

NetUtil.asynchfetch(“chrome://branding/content/icon16.png,函数(输入流,代码){
var bis=Cc[“@mozilla.org/binaryinputstream;1”].createInstance(Ci.nsIBinaryInputStream);
二、设置输入流(输入流);
var data=新的Uint8Array(bis.available());
bis.readArrayBuffer(data.length,data.buffer);
open(OS.Path.join(OS.Constants.Path.desktopDir,'copied.png'),{write:true,append:false,create:true})(
函数成功(文件){
文件写入(数据);
file.close();
},
功能失败(原因){
控制台日志(原因);
}
)
})

chrome://branding/content/icon16.png
不是一个文件,我想你不能

但是可以在
NetUtli
OS.File

NetUtil.asynchfetch(“chrome://branding/content/icon16.png,函数(输入流,代码){
var bis=Cc[“@mozilla.org/binaryinputstream;1”].createInstance(Ci.nsIBinaryInputStream);
二、设置输入流(输入流);
var data=新的Uint8Array(bis.available());
bis.readArrayBuffer(data.length,data.buffer);
open(OS.Path.join(OS.Constants.Path.desktopDir,'copied.png'),{write:true,append:false,create:true})(
函数成功(文件){
文件写入(数据);
file.close();
},
功能失败(原因){
控制台日志(原因);
}
)
})

谢谢你,伙计。我希望我可以完全与OS.File异步,我的下一个选择是XHR和OS.File。使用XHR会比NetUtil更异步吗?谢谢你,伙计。我希望我可以完全与OS.File异步,我的下一个选择是XHR和OS.File。使用XHR会比NetUtil更异步吗?谢谢你,伙计。我希望我可以完全与OS.File异步,我的下一个选择是XHR和OS.File。使用XHR会比NetUtil更异步吗?谢谢你,伙计。我希望我可以完全与OS.File异步,我的下一个选择是XHR和OS.File。使用XHR会比NetUtil更异步吗?