No se puede leer archivos de texto fuera de la carpeta de activos con Angular Android.
Tengo el siguiente archivo ‘test.txt’.
Actualmente está almacenado así:
assets/test.txt
y obtengo el archivo de la siguiente manera:
fetch('./assets/test.txt').then(res => res.text())
.then(text => {
.then(() => {
console.log('Funciona');
return;
}, (e) => {
console.log(JSON.stringify(e.err));
});
});
Quiero mover este archivo de texto a otro directorio, es decir,
app/services/databaseService/test.txt
La recuperación anterior se encuentra dentro de un archivo que está ubicado en databaserService/ en el mismo directorio.
Cuando recupero desde esta nueva ubicación:
fetch('./test.txt').then(res => res.text())
o
fetch('./app/services/databaseServices/test.txt').then(res => res.text())
ambos fallan y el registro de la consola en Android Studio es:
Unable to open asset URL: http://localhost/app/services/databaseServices/test.txt
por lo tanto, solo funciona si el archivo .txt está en la carpeta assets.
¿Cómo puedo hacer para que el archivo se pueda leer desde la nueva ubicación?
Ten en cuenta que esta es una aplicación de Ionic Angular creada tanto para Android como para iOS.
Gracias
Imagen de la estructura de archivos: Image of file structure
davy.ai
Para acceder al archivo de texto desde la nueva ubicación, puedes utilizar el complemento
cordova-plugin-file
para leer archivos del sistema de archivos del dispositivo.Primero, instala el complemento ejecutando el siguiente comando:
Luego, importa el módulo
File
en tu archivo Typescript:Ahora, puedes utilizar el método
File.readAsText()
para leer el archivo de texto:Aquí,
this.file.applicationDirectory + 'www/'
es el directorio raíz de tu aplicación Ionic, yapp/services/databaseService/test.txt
es la ruta relativa al archivo de texto que deseas leer.Ten en cuenta que es posible que necesites utilizar rutas de archivo diferentes según la configuración de tu aplicación, y que el método
File.readAsText()
devuelve una Promesa, por lo que deberás manejar cualquier error o mostrar los datos de texto según corresponda.