Я пытаюсь сохранить несколько файлов в каталог - за одну операцию. Если я правильно понимаю документацию API Chrome FileSystem, это должно быть возможно, когда я использую openDirectory для chrome.fileSystem.chooseEntry. Это вообще разрешено?
Однако документация очень минималистична, и я также не нашел примеров в Google.
Дополнительная информация:
У меня есть соответствующие права доступа к каталогу, а также права на запись:
/*you need chrome >= Version 31.x [currently chrome beta]*/
"permissions": [
{"fileSystem": ["write", "directory"]}, "storage",
]
Затем у вас остаются chrome.fileSystem.chooseEntry(параметры объекта, обратный вызов функции) и chrome.fileSystem.getWritableEntry(запись ввода, обратный вызов функции), но я не понял если эти функции даже то, что я хочу.
Вот как отдельный файл можно сохранить в файловой системе:
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);
}
Но как сохранить несколько файлов, если я использую chrome.fileSystem.chooseEntry({type:"openDirectory",..} или openDirectory предоставляет мне только права чтения?