android - example - ¿Dónde está la ubicación del archivo creado por Cordova File Plugin?
cordova-plugin-file-transfer (1)
He usado Cordova File Plugin para crear archivos en un dispositivo móvil. A continuación está el código para crear archivos:
window.resolveLocalFileSystemURL(cordova.file.dataDirectory, function (dir) {
alert(cordova.file.dataDirectory);
dir.getFile("log.txt", { create: true }, function (file) {
alert("got the file: "+ file.name + '', '' + file.fullPath);
});
});
Cuando implemente la aplicación en mi teléfono Android, el archivo se creará correctamente, pero no puedo encontrar el archivo creado en mi dispositivo.
Aunque cordova.file.dataDirectory
apunta a file:///data/data/io.cordova.myappId/files/
path en mi dispositivo, la carpeta io.cordova.myappId
no existe en data>data
ruta de data>data
, pero existe en Android>data
ruta de Android>data
. Por cierto, revisé el storage>Android>data>io.Cordova.myappId>files
y storage>data>data
y el archivo no existe.
Es esto porque:
El archivo creado está ubicado en otro lugar, entonces, ¿dónde puedo encontrarlo?
o
Debido a que es privado y mi administrador de archivos no tiene acceso a él, entonces, ¿cómo puedo cambiar la configuración de permisos para tener un archivo público?
¿Por qué no puedo encontrar el archivo en mi dispositivo?
El archivo se creó con éxito pero no puedo encontrarlo en mi dispositivo porque la ruta del dataDirectory
que indico para crear el archivo es una ruta privada y el administrador de archivos de mi dispositivo no tiene acceso a ella (base en esta tabla ). En realidad, dataDirectory
es una opción de Internal Storage
.
Almacenamiento interno: almacene datos privados en la memoria del dispositivo.
Puede guardar archivos directamente en el almacenamiento interno del dispositivo. De forma predeterminada, los archivos guardados en el almacenamiento interno son privados para su aplicación y otras aplicaciones no pueden acceder a ellos (ni tampoco el usuario). Cuando el usuario desinstala su aplicación, estos archivos son eliminados. ( Referencia )
¿Cómo crear un archivo público?
Entonces, para crear un archivo en mi dispositivo que pueda acceder a él con el administrador de archivos, tengo que usar una de las opciones de ruta pública como: externalDataDirectory
. Antes, pensaba que era para almacenar archivos en una tarjeta SD externa que no tenía en mi teléfono, así que no los probé. Pero al probarlo hoy, crea el archivo en el almacenamiento de mi dispositivo interno en Android/data/<app-id>/files
ruta de acceso de Android/data/<app-id>/files
que es público y puedo acceder a él con el administrador de archivos del dispositivo.
En realidad, el término internal
y external
resultó engañoso, mientras que external storage
puede ser un medio de almacenamiento extraíble (como una tarjeta SD) o un almacenamiento interno (no extraíble) ( referencia ).