Подтвердить что ты не робот

Доступ к файлам из каталога ресурсов/www

скажем, у меня есть файл под названием foo.html сидя (довольно удобный) в каталоге моих ресурсов /www (рядом с моим index.html).

Я хотел бы скопировать этот файл в другое место на устройстве. Мой первый подход window.resolveLocalFileSystemURI("foo.html", cool(), notCool()); не работает. Также с префиксом типа www/it не будет.

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

изменить: Хорошо, теперь у нас есть такой вызов

window.resolveLocalFileSystemURI("file:///android_asset",
  function(entry){
    console.log(entry.fullPath);},
  function(evt){
    console.log(evt.code);}
);

но мы получаем ошибку с code: undefined (Phonegap v1.2) и code: 1 с v1.0 (код 1 = файл не найден?!)

4b9b3361

Ответ 1

Вы должны иметь доступ к файлу следующим образом:

window.resolveLocalFileSystemURI("file:///android_asset/www/foo.html", onResolveSuccess, onFail);

Затем вы можете использовать File API - FileEntry.copyTo или FileEntry.moveTo для фактического выполнения действия. Примечание. Вы не можете записывать в папку assset/www, только на SD-карту.

Надеюсь, что это поможет

Ответ 2

Вы не можете делать то, что хотите. Файлы в каталоге активов не являются технически в файловой системе, поэтому они недоступны через File API. Это означает, что вызов window.resolveLocalFileSystemURI() не вернет вам FileEntry.

Лучшее, на что вы можете надеяться, это получить доступ к этим файлам через XHR. Если они основаны на тексте, вы всегда можете взять результат XHR и записать его в файловую систему с помощью FileWriter. Я написал сообщение в блоге, в котором показано, как получить файл из каталога ресурсов с помощью XHR.

http://simonmacdonald.blogspot.com/2011/12/on-fourth-day-of-phonegapping-creating.html

Ответ 3

Leon - "вы не можете писать в папку assset/www, только на SD-карту". Первая часть верна, вы не можете написать путь к ресурсу /www. Но, если приложение установлено на устройстве, вы можете создавать и записывать в файл, и оно создается в корневом каталоге android. Если приложение установлено на SD-карте, этот файл создается в корневой карте SD. Файлы, созданные таким образом, НЕ удаляются или изменяются при очистке пользовательских данных для приложения и НЕ удаляются при удалении приложения.