2013-11-03 16 views
5

Tek bir işlemde bir dizine birden çok dosya kaydetmeye çalışıyorum. chrome fileSystem api documentation doğru anlamak, chrome.fileSystem.chooseEntry için openDirectory seçeneğini kullandığınızda bu mümkün olmalıdır. Bu izin verilir mi?
Ancak, belgeler çok minimalist ve ben de google ile herhangi bir örnek bulamadık.Bir krom uygulamasında birden fazla dosya nasıl kaydedilir

Daha arkaplan:
Bir dizine erişmek için uygun izinlere sahip ve aynı zamanda yazma izinlerine sahip:

/*you need chrome >= Version 31.x [currently chrome beta]*/ 
"permissions": [ 
    {"fileSystem": ["write", "directory"]}, "storage", 
] 
Sonra

sen (chrome.fileSystem.chooseEntry ile nesne seçenekleri bırakılır, fonksiyon geri arama ve chrome.fileSystem.getWritableEntry (giriş girişi, işlev geri çağırma), ancak bu işlevlerin istediğim gibi olup olmadığını anlayamadım. İşte

bir tek dosya dosya sistemine kaydedilebilir nasıl:

chrome.fileSystem.chooseEntry({type:"saveFile", suggestedName:"image.jpg"}, 
    function(entry, array){ 
     save(entry, blob); /*the blob was provided earlier*/ 
    } 
); 

function save(fileEntry, content) { 
    fileEntry.createWriter(function(fileWriter) { 
     fileWriter.onwriteend = function(e) { 
      fileWriter.onwriteend = null; 
      fileWriter.truncate(content.size); 
     }; 
     fileWriter.onerror = function(e) { 
      console.log('Write failed: ' + e.toString()); 
     }; 
     var blob = new Blob([content], {'type': 'image/jpeg'}); 
     fileWriter.write(blob); 
    }, errorHandler); 
} 

Ama chrome.fileSystem.chooseEntry ({tip kullandığımda birden fazla dosya kaydedebilirsiniz nasıl: "openDirectory" , ..} veya openDirectory yapar sadece bana okuma hakları vermek?

+0

http://stackoverflow.com/q/28710804/632951 adresinden takip edebilirsiniz. – Pacerier

cevap

8

bu çalışması gerekir inanıyoruz.

chrome.fileSystem.chooseEntry({type:'openDirectory'}, function(entry) { 
    chrome.fileSystem.getWritableEntry(entry, function(entry) { 
     entry.getFile('file1.txt', {create:true}, function(entry) { 
      entry.createWriter(function(writer) { 
       writer.write(new Blob(['Lorem'], {type: 'text/plain'})); 
      }); 
     }); 
     entry.getFile('file2.txt', {create:true}, function(entry) { 
      entry.createWriter(function(writer) { 
       writer.write(new Blob(['Ipsum'], {type: 'text/plain'})); 
      }); 
     }); 
    }); 
}); 
+0

** Wow **. Bunun işe yaramadığına inanamıyorum, öğretici tamamen sessiz. Bunu nereden biliyordun? – Pacerier

İlgili konular