acceder a los archivos del directorio assets / www

digamos que tengo un archivo llamado foo.html sentado (bastante cómodo) en mi directorio assets / www (al lado de mi index.html).

Me gustaría copiar ese archivo a otra ubicación en el dispositivo. Mi primer enfoque es window.resolveLocalFileSystemURI("foo.html", cool(), notCool()); no está trabajando. También con un prefijo como www / it no lo hará.

Sería interesante saber si es realmente posible acceder a los archivos a través de Phonegap. No estoy convencido y, por lo tanto, me gustaría ver un fragmento de código sobre cómo obtener un FileEntry para los archivos en el directorio de activos, si es posible.

editar: Ok, ahora tenemos una llamada como esta

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

pero recibimos un error con el code: undefined (Phonegap v1.2) y el code: 1 con v1.0 (código 1 = ¿archivo no encontrado ?!)

Debería poder acceder al archivo de esta manera:

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

Luego puede usar File API – FileEntry.copyTo o FileEntry.moveTo para realmente hacer la acción. Nota: no puede escribir en la carpeta assset / www, solo en una tarjeta SD.

Espero que esto ayude

No puedes hacer lo que quieres hacer. Los archivos en el directorio de activos no se encuentran técnicamente en el sistema de archivos, por lo que no se puede acceder a ellos a través de la API de archivos. Esto significa que llamar a window.resolveLocalFileSystemURI() no le devolverá un FileEntry.

Lo mejor que puede esperar es acceder a esos archivos a través de XHR. Si están basados ​​en texto, siempre puede tomar el resultado del XHR y escribirlo en el sistema de archivos utilizando el FileWriter. Escribí una publicación de blog que muestra cómo obtener un archivo del directorio de activos usando XHR.

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

Leon – “no se puede escribir en la carpeta assset / www, solo en una tarjeta SD” La primera parte es verdadera, no se puede escribir en la ruta asset / www. Pero, si la aplicación está instalada en el dispositivo, puede crear y escribir en un archivo y se crea en la raíz de Android. Si la aplicación está instalada en una tarjeta SD, ese archivo se crea en la raíz de la tarjeta SD. Los archivos así creados NO se eliminan ni se modifican cuando se borran los datos de usuario de la aplicación y NO se eliminan cuando se elimina la aplicación.