Nano Hash - криптовалюты, майнинг, программирование

Как сохранить несколько файлов в приложении Chrome

Я пытаюсь сохранить несколько файлов в каталог - за одну операцию. Если я правильно понимаю документацию 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 предоставляет мне только права чтения?



Ответы:


1

Я считаю, что это должно сработать.

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'}));
            });
        });
    });
});
03.11.2013
  • Вау! Я не могу поверить, что это работает, в учебнике об этом ничего не сказано. Как вы узнали об этом? 18.08.2016
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..