1

Как написать файл в папку temp в chrome файловой системе api?chrome.fileSystem api file to temp directory

 chrome.fileSystem.getWritableEntry("temp dir here", function(entry) { 
      var uniqid = Math.floor((Math.random() * 10) + 1)+Date.now(); 
      entry.getFile(uniqid+'.txt', {create:true}, function(entry) { 
       entry.createWriter(function(writer) { 
        writer.write(new Blob([printText], {type: 'text/plain'})); 
       }); 
      }); 
     }); 

Мне нужен этот уникальный .txt написать временную директорию, а затем получить это место ..

+1

Для чего это необходимо? Чтобы писать в настоящую файловую систему, вам нужно согласие пользователя, вы не можете просто выбрать место. Если вам нужен только временный файл, вы можете сделать это с помощью виртуальной файловой системы. – Xan

+0

Как я могу работать с виртуальной файловой системой? Мне нужно создать файл в папке temp, а затем скопировать в другую папку. Сложный, но нужен он таким образом :( –

+1

Вопрос в том, что он вам нужен для пользователя или только внутри приложения? (Также, я полагаю, добавочный тег не применяется, поскольку это API только для приложения) – Xan

ответ

1

Вы можете использовать виртуальную файловую систему HTML5 в качестве «ступенчатого» места перед копированием его в финале «реальный» папка. Вам все равно нужно запросить доступ к последней папке.

Большинство деталей можно найти в Exploring the FileSystem API статье, но идея заключается в следующем: chrome.fileSystem API построен на тех же принципах, вы просто получить различные записи, когда вы запрашиваете их chrome.fileSystem.chooseEntry

Чтобы получить виртуальную файловую систему, вместо из реальной, вам нужен другой вызов:

window.webkitRequestFileSystem(
    window.TEMPORARY, 
    5*1024*1024 /* 5MB, adjust as needed, may require "unlimitedStorage" permission */, 
    onInitFs, 
    errorHandler 
); 

function onInitFs(filesystem) { 
    /* do something with filesystem.root, which is a DirectoryEntry, 
    just as you would with `chrome.fileSystem.chooseEntry` */ 
} 

для получения дополнительной документации, MDN хорошее место.

Да, есть большие красные страшные предупреждения «не использовать». Он не переносится, поскольку только Chrome реализует его, и другие браузеры решили не делать этого. Но для написания специально приложения для Chrome все в порядке. Если вам нужна уверенность в том, что Chrome продолжит его поддерживать - ну, chrome.fileSystem тесно связан с ним.