2013-08-17 1 views
1

Я тестирую некоторые новые возможности файловой системы JS, т. Е. Создает пустой текстовый файл в локальной файловой системе. Я запускаю файлы HTML & с локального пути (файл: ///). Для этого я запустил Google Chrome с флагом --allow-file-access-from-files из CLI. Запрос файловой системы PERSISTENT (и работает).API JS Filesystem: доступ к JS FileEntry в локальной системе?

Я прочитал на разных сообщениях о файловой системе, скопировал и модифицировал часть кода в учебниках; Когда я запускаю HTML-файл, мои пользовательские сообщения о успехе/неудаче выводятся в консоли;

Это результат:

Opened file system:/ // this is the root path of the JS Filesystem. 

/wtf.txt // this is the name and path of the text file I created+ it's a success 

Однако, когда я смотрю на (как системы и приложений корня) моего каталога, есть нет .txt файл с именем я присвоенной ему. Как я могу узнать, где Javascript действительно написал этот файл? В чем «root» (поскольку «root» не может быть назначен)? Что означает, что FileSystem является «песочницей»? То, что я не могу получить доступ к (виртуальному?) Его содержимому на моем локальном диске, но только с JS? Если это так, есть ли способ предложить пользователю сохранить файл?

Заранее спасибо за ваши ответы

ответ

3

Это кажется, что вы ждете Файловая система API работать локально подобно файловой системы ОС. Клиент не работает так. Фактически, и API предназначен для вашего интерфейса, как программиста, для файлов и каталогов - сам клиент (например, Chrome и т. Д.) Будет обрабатывать остальные на локальном уровне. API не разработан, с помощью которого вы можете создать файл через браузер и легко получить доступ к нему через операционную систему.

Как я могу узнать, где Javascript действительно написал этот файл? В чем «root» (поскольку «root» не может быть назначен)?

Технически говоря, каждый клиент может хранить локально по своему усмотрению. Поэтому, когда вы можете пойти в локальную файловую систему, чтобы искать файл, что-то не так с вашим подходом, если вы пытаетесь это сделать; API файловой системы для этого не предназначен. На ваш вопрос вы можете предположить, что если есть содержимое области хранения клиента (например, для Chrome это нечто вроде «C: \ Users \ USERNAME \ AppData \ Local \ Google \ Chrome \ User Data \ Default \ File System \»), то вы можете предположить, что JavaScript написал его. Но опять же, он не настроен для удобного просмотра в локальной системе.

Что означает, что FileSystem является «песочницей»?

Песочница просто означает область, созданную и отведенную для определенной цели, за пределами которой клиент не может видеть/получать доступ. См. Это от Mozilla: https://developer.mozilla.org/en-US/docs/WebGuide/API/File_System/Introduction#virtual

Что я не могу получить (виртуальное?) Его содержимое на своем локальном диске, но только с JS?

Это правильно, и по дизайну.

Если это так, есть ли способ предложить пользователю сохранить файл?

Если я правильно понимаю ваш вопрос, вы спрашиваете, есть ли способ предоставить конкретный файл пользователю и попросить его сохранить его локально. Ну, конечно, если вы предоставите ссылку на файл (или нажмите его, другое обсуждение), тогда клиент предложит пользователю сохранить/сохранить его, если их платформа позволит им это сделать.Но у вас нет контроля над тем, где они сохраняют его локально, и вы не можете получить его позже. Если я неправильно понял ваш вопрос, прокомментируйте ниже, и я последую за ним.

+0

Нет, это отвечает на мой вопрос. Спасибо за предоставленную ссылку. – Tyblitz