web-dev-qa-db-fra.com

Où est l'emplacement du fichier créé par Cordova File Plugin?

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?

24
Asieh Mokarian

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 ).

35
Asieh Mokarian