Lo prometido es deuda. Aqui va una traducción del tutorial sobre almacenamiento de ficheros en Basic4Android. El original, en inglés, además cubre el tratamiento de ficheros de texto. Se encuentra en
http://www.basic4ppc.com/forum/basic...ext-files.html
Muchas aplicaciones requieren acceso a almacenamiento permanente. Las dos formas más comunes de almacenar datos son los ficheros y las bases de datos.
En ambos casos, y en otros similares como iconos, imagenes, etc., se utilizan varios lugares diferentes para guardar estos ficheros, según en qué zona de la memoria vayamos a almacenarlos.
El objeto File tiene varios métodos que nos resultarán útiles a la hora de trabajar con ficheros.
Existen varios lugares de interés donde podemos leer o escribir ficheros:
File.DirAssets
Esta carpeta incluye los ficheros que han sido añadidos mediante el Administrador de Ficheros (File Manager). Estos ficheros son de acceso en modo
solo lectura. No es posible crear nuevos ficheros en esta carpeta, que está incluida dentro del apk.
File.DirInternal/File.DirInternalCache
Estas dos carpetas están localizadas en la memoria principal, y son privadas para la aplicación. Las otras aplicaciones no pueden acceder a estos ficheros.
La carpeta cache puede ser eliminada/vaciada por el Sistema Operativo en caso de necesitar más espacio.
File.DirRootExternal
La carpeta raiz de la tarjeta SD
File.DirDefaultExternal
Es la carpeta por defecto de la aplicación en la tarjeta SD.
Está localizada en: <tarjeta_SD>/Android/data/<paquete>/files/
Será creada automáticamente si es necesaria.
IMPORTANTE: El uso de cualquiera de las dos propiedades anteriores hará que nuestra aplicación solicite el permiso EXTERNAL_STORAGE.
Truco: Es posible saber si existe una tarjeta de memoria y si está disponible usando
File.ExternalReadable y
File.ExternalWriteable
Como comentario adicional, al trabajar con bases de datos con contenido predeterminado, se suele operar de la siguiente manera:
1- Copiamos la BD a la carpeta File.DirAssets, usando el File Manager
2- En el programa, comprobamos si la BD existe en File.DirDefaultExternal. Si no, la copiamos desde File.DirAssets
3- Ya podemos trabajar con ella.