1

Я разрабатываю хром-приложение с возможностью обработки файлов. Мне нужно скопировать эти файлы в приложение, которое, я считаю, хранит его в песочнице приложения.Где находится песочница файлов для приложения Chrome?

Но где эти файлы, как на моем диске?

Вот где я получаю доступ к файловой системе:

fs = null 

oneGig = Math.pow 2, 30 # 1GB 
window.webkitRequestFileSystem window.PERSISTENT, oneGig, 
    (_fs) -> # on fs init 
    fs = _fs 
    console.log fs.root.fullPath #=> "/" obviously not right 

    (e) -> # on fs error 
    console.log e 

Вслед за этим кодом, чтобы фактически записать файлы.

fs.root.getFile songObj.md5, create: true, (fileEntry) -> 
    fileEntry.createWriter (fileWriter) -> 
    fileWriter.onwriteend = (e) -> 
     console.log 'Song file saved!', fileEntry, e 

     # Where the hell on disk is my file now? 

    fileWriter.onerror = (e) -> 
     console.log 'fileWriter.onerror', e 

    fileWriter.write songObj.blob 

    , (e) -> console.log 'fileEntry.createWriter error', e 
, (e) -> console.log 'fs.root.getFile error', e 

У меня были некоторые ошибки в моей обработке файлов и хотите, чтобы иметь возможность легко проверять, что происходит, а также чистые вещи, если это необходимо. И я не могу найти нигде в документах, что он говорит, что файлы идут. И это особенно расстраивает, так как у меня есть файлы, которые просто исчезают после возвращения в приложение через несколько дней.

+1

Песочница запутана. Файлы программно доступны только через API. Это не является требованием спецификации (http://dev.w3.org/2006/webapi/FileAPI/), но это имеет смысл с точки зрения безопасности. Конечно, данные действительно живут на вашем локальном диске, но в странном формате. Было бы легче исправить ваш код, чем определить этот формат. Почему бы вам не задать новый вопрос, который напрямую затрагивает вопрос о том, почему ваши файлы исчезли? – sowbug

+2

Кроме того, ознакомьтесь с http://stackoverflow.com/a/11497638/65977, который позволяет просматривать файловую систему из Chrome DevTools. – MatrixFrog

ответ

4

Они идут в «песочницу», которую непросто осмотреть. Вместо этого вы можете использовать новую функцию chrome.fileSystem selectEntry (http://developer.chrome.com/apps/fileSystem.html) с опцией «directory», а также «keepEntry», чтобы получить доступ к записи в обычный каталог на вашем компьютере, чтобы вы могли видеть файлы и иметь их не очищается, когда вы очищаете кеш браузера и т. д.

2

Так что я не совсем уверен на более низком уровне того, как Chrome Apps отличается от обычной веб-страницы в контексте API-интерфейсов файловой системы HTML5.

Но я могу сказать, что постоянное хранение на Windows 7 с Chrome здесь:

C:\Users\{user}\AppData\Local\Google\Chrome\User Data\Default\File System\ 

Если вы хотите узнать, где он хранится с помощью Chrome на других ОС см this_post

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