J'ai utilisé Cordova File Plugin pour créer des fichiers sur un appareil mobile. Voici le code pour créer des fichiers:
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);
});
});
Lorsque je déploie l'application sur mon Android, le fichier sera créé avec succès, mais je ne trouve pas le fichier créé sur mon appareil.
Bien que cordova.file.dataDirectory
pointe vers file:///data/data/io.cordova.myappId/files/
chemin sur mon appareil, le io.cordova.myappId
le dossier n'existe pas dans data>data
chemin d'accès, mais existe dans Android>data
chemin. Au fait, j'ai vérifié les deux storage>Android>data>io.Cordova.myappId>files
& storage>data>data
et le fichier n'existe pas.
Est-ce parce que:
Le fichier créé se trouve à un autre endroit, alors où puis-je le trouver?
ou
Parce qu'il est privé et que mon gestionnaire de fichiers n'y a pas accès, comment puis-je modifier le paramètre d'autorisation pour avoir un fichier public?
Pourquoi je ne trouve pas le fichier sur mon appareil?
Le fichier a été créé avec succès mais je ne le trouve pas sur mon appareil car le chemin dataDirectory
que j'indique pour créer le fichier est un chemin privé et mon gestionnaire de fichiers appareil n'y a pas accès (base le ce tablea ). En fait, dataDirectory
est un Internal Storage
option.
Stockage interne: stockez les données privées dans la mémoire de l'appareil.
Vous pouvez enregistrer des fichiers directement sur le stockage interne de l'appareil. Par défaut, les fichiers enregistrés dans le stockage interne sont privés de votre application et les autres applications ne peuvent pas y accéder (ni l'utilisateur). Lorsque l'utilisateur désinstalle votre application, ces fichiers sont supprimés. ( référence )
Comment créer un fichier public?
Donc, pour créer un fichier sur mon appareil auquel je peux y accéder avec le gestionnaire de fichiers, je dois utiliser l'une des options de chemin public comme: externalDataDirectory
. Avant, je pensais que c'était pour stocker des fichiers sur une carte SD externe que je n'avais pas sur mon téléphone, donc je ne l'ai pas testé. Mais en le testant aujourd'hui, il crée le fichier sur le stockage de mon appareil interne dans Android/data/<app-id>/files
chemin qui est public et je peux y accéder avec le gestionnaire de fichiers de l'appareil.
En fait, le terme internal
et external
était trompeur pour moi pendant que external storage
peut être un support de stockage amovible (comme une carte SD) ou un stockage interne (non amovible) ( référence ).