2011-12-06 20 views
9

Después de buscar 1 hora no encuentro ninguna solución a mi problema.Copie el archivo a la carpeta de activos

quiero mover un archivo a la carpeta de sdcard activos y sobreescribir el archivo existente en la carpeta de activos (tanto el archivo son bases de datos SQLite tienen mismo nombre con sólo una pequeña diferencia en los datos)

?? carpeta

+8

Simplemente no se puede quitar o añadir nada desde/a la carpeta de activos en tiempo de ejecución. – Mudassir

+1

quiero descargar la base de datos sqlite del servidor y luego copiarla a la carpeta de activos. –

+0

¿cómo puedo superar esta situación? –

Respuesta

11

En realidad, El comportamiento del archivo apk Android es de sólo lectura por lo que la La estructura del directorio que se encuentra en ese archivo apk sigue lo mismo, Para que nadie pueda escribir estos archivos o realizar cambios en el tiempo de ejecución, es por eso que no puede realizar cambios en /asset folder en tiempo de ejecución. se puede leer el archivo de ella (significa copiar los archivos que están disponibles en activo para cualquier internal storage o /sdcardpero no lo escriben a viceversa)

Su aplican en todos los directorios que se construyen en los archivos .apk. Según los documentos.

+0

, disculpen el mismo comentario pero necesito una solución :) Tengo una base de datos en la carpeta de activos y también en el servidor. Ahora quiero cambiar la base de datos más adelante. para que el usuario pueda obtener la última actualización. ¿Cómo puedo hacer esto? ¿Cómo obtendrá el usuario esa base de datos? - John Smith hace 7 segundos –

+0

Tiene que escribir esa base de datos en el almacenamiento interno o en una tarjeta SD (se prefiere el almacenamiento interno). – user370305

+0

¿me puede guiar cómo hacerlo? –

4

activos no se pueden escribir sólo es legible por lo que no puede copiar desde sdcard a los activos, sí se puede copiar de activos a sdcard

+1

No downvote. Pero el poster quiere viceversa. – Mudassir

+0

sé que http://stackoverflow.com/questions/4447477/android-how-to-copy-files-in-assets-to-sdcard pero mi problema es diferente. –

+1

+1 para obtener la información exacta. –

1

Si desea otras aplicaciones no acceder a su base de datos a continuación, lo que puede hacer es

  1. Descargar la base de datos de la página web. crea una base de datos temporal también en el directorio de la aplicación.
  2. getDatabasePath() esto le dará la ruta de la base de datos ficticia que ha creado ahora reemplace esto con el que descargó.

PS .: usuario y aplicaciones que tienen acceso a la raíz sigue siendo capaz de acceder a él y no puedes hacer nada en ese escenario

Cuestiones relacionadas