2014-09-18 2 views
0

OS.File을 사용하여 데스크톱으로 크롬 경로를 복사하려고하는데 오류가 계속 발생합니다. 이것이 가능한가?OS.File 바탕 화면에 크롬 파일 복사

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()) 
    } 
); 

답변

3

chrome://branding/content/icon16.png은 (는) 파일이 아니기 때문에 그럴 수 없습니다.

그러나 NetUtliOS.File

NetUtil.asyncFetch("chrome://branding/content/icon16.png", function(inputstream, code){ 
    var bis = Cc["@mozilla.org/binaryinputstream;1"].createInstance(Ci.nsIBinaryInputStream); 
    bis.setInputStream(inputstream); 
    var data = new Uint8Array(bis.available()); 
    bis.readArrayBuffer(data.length, data.buffer); 

    OS.File.open(OS.Path.join(OS.Constants.Path.desktopDir, 'copied.png'), {write: true, append: false, create: true}).then(
    function success(file){ 
     file.write(data); 
     file.close(); 
    }, 
    function fail(reason){ 
     console.log(reason); 
    } 
) 
}) 
+1

감사합니다 남자 사이에 작업을 분할 할 수 있습니다. 나는 OS와 완전히 비동기식이되기를 바랬다. 파일, 내 다음 옵션은 XHR과 OS였다. 파일. XHR을 사용하는 것이 NetUtil보다 비동기적일 것입니까? http://stackoverflow.com/questions/25492225/how-to-download-image-to-desktop-with-os-file – Noitidart

관련 문제