2016-02-04 6 views
1

Я пытаюсь использовать chrome.apps для программы, которая должна писать несколько отдельных файлов журналов данных. Затем пользователь должен иметь доступ к этим файлам журналов вне приложения в своей файловой системе для последующей обработки.Приложение для создания и записи в Chrome

Это необходимо сделать много раз, поэтому минимальное взаимодействие с пользователем не требуется для создания файла. Хотя это просто в любом коде программы, я очень затрудняюсь с Chrome приложения. . Можно ли использовать хром-приложения для создания «log_file.txt» & «log_file2.txt» без взаимодействия с пользователем? Есть ли способ, которым я могу иметь пользователя только указать каталог, затем из моего приложения, я мог бы создать несколько файлов в этом каталоге без взаимодействия с пользователем? Я пытался сделать это в коде, но мне нужны «записи» для хром-файловой системы. Для метода getEntry требуется «запись», поэтому невозможно создать новые «записи», чтобы я мог писать новые файлы. Любые идеи были бы оценены!

+0

Добро пожаловать в переполнение стека! Я вижу, вы отредактировали свой вопрос (что хорошо), просто чтобы добавить решение, а это не так. Stack Overflow - это сайт для * вопросов и ответов *. Если ваш собственный ответ в основном вытекает из того, который вы приняли, вы всегда можете опубликовать его как отдельный ответ. – usr2564301

ответ

3

Есть ли какой-либо способ, которым я могу просто указать каталог, а затем из моего приложения, я мог бы создать несколько файлов в этом каталоге без взаимодействия с пользователем?

Да. Вы должны запросить каталог с

chrome.fileSystem.chooseEntry({type: "openDirectory"}, /*...*/); 

До тех пор, пока у вас есть разрешения

{"fileSystem": ["write", "retainEntries", "directory"]} 

вы сможете создавать файлы в этом каталоге, и «сохранить» (сохранить) запись каталога для позже повторное использование, не спрашивая пользователя снова. Создание файлов, когда у вас есть DirectoryEntry, должно быть похоже на this.

Но требуется минимальное взаимодействие (с запросом на папку).

+0

Однако дескриптор каталога не может создать объект файловой системы. Чтобы получить объект файловой системы через chrome api, необходимо использовать chrome.requestFileSystem. Для этого требуются параметры, которые предоставляют идентификатор тома. Я не думаю, что есть способ перейти от дескриптора каталога к идентификатору тома. Кроме того, getVolumeList не поддерживается большинством операционных систем. – NathanZ

+0

'DirectoryEntry' имеет метод' getFile', который можно использовать для создания файла. Вам не нужно создавать файловую систему - считайте, что с точки зрения связанной статьи HTML5Rocks вы получаете 'fs.root' напрямую. – Xan

+0

Эй, Ксан, извините, случайно слишком быстро нажмите клавишу ввода, пожалуйста, просмотрите мой отредактированный предыдущий комментарий. – NathanZ

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