2014-01-26 4 views
0

Я хочу использовать API-интерфейс chrome.fileSystem для создания нового файла в C:/или в любом месте, но я не могу понять, как использовать этот API.Как я могу использовать API-интерфейс файловой системы Chrome App

Я не могу найти никакого аргумента для пути к файлу, только вещь есть fileEntry, но как я могу сгенерировать fileEntry с чем-то вроде C: // a/b/c?

ответ

0

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

Для этой функции вы проходите в FileSystem, которую вы получите от чего-то вроде chrome.fileSystem.chooseEntry с опцией типа каталога, и путь будет в вашем примере ['a', 'b', 'c ']

function recursiveGetEntry(filesystem, path, callback) { 
    function recurse(e) { 
     if (path.length == 0) { 
      if (e.isFile) { 
       callback(e) 
      } else { 
       callback({error:'file exists'}) 
      } 
     } else if (e.isDirectory) { 
      if (path.length > 1) { 
       e.getDirectory(path.shift(), {create:true}, recurse, recurse) 
      } else { 
       e.getFile(path.shift(), {create:true}, recurse, recurse) 
      } 
     } else { 
      callback({error:'file exists'}) 
     } 
    } 
    recurse(filesystem) 
} 
3

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

Единственный способ получить доступ к файлам вне песочницы приложения - это жест пользователя, то есть вы должны спросить пользователя о файле. Вы делаете это с chrome.fileSystem.chooseEntry.

Если это не ясно из очевидного, возможно, вы могли бы объяснить больше о том, что вы пытаетесь сделать с файлами, и мы можем дать советы о том, как это сделать. Обычно chrome.fileSystem не лучший выбор для хранения данных - есть и другие более удобные и изолированные варианты, такие как chrome.storage.

+0

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

+0

Несомненно, NPAPI может многое сделать. Он неподходящий и небезопасный. Вы должны задать другой вопрос, объясняющий, какую проблему вы пытаетесь решить. Например. это пользовательские данные или пользовательские настройки или внутренний кэш/база данных? Каждый из них может быть выполнен, но есть разные инструменты, каждый из которых подходит для различных задач. –

Смежные вопросы