53 votes

Répertoire de données «Home» de l'application Android Get

Une simple question, relative à la valeur par défaut "à la maison" directory lorsqu'une application écrit à la mémoire interne. Par défaut, tous les fichiers créés sont placés par le système d'exploitation (2.2) dans:

/data/data/your.package/files

Lors de la lecture de fichiers, la même valeur par défaut est utilisé, lors de la garder dans un contexte approprié via openFileInput(), openFileOutput(). Mais si j'ai besoin de vérifier l'existence du fichier, par exemple, en utilisant le Fichier de classe, j'ai besoin de spécifier le chemin d'accès complet dans le constructeur.

Je vois que Environment.getDataDirectory() (retours /data), Environment.getRootDirectory() (retours /system), etc, mais rien n'liés à l'obtention de l'app 'à la maison' annuaire.

Ce n'est pas une affaire énorme, mais je préfère ne pas coder en dur le chemin d'accès complet dans mon Application pour le Fichier à utiliser (dire le nom du package de modifications, dire le chemin des changements dans un futur OS version) si il y a un moyen de faire référence à l'application de la "maison" répertoire de la programmation.

98voto

Paul Mennega Points 4099

Bien sûr, n'échoue jamais. Nous avons trouvé la solution environ une minute après avoir posé la question ci-dessus ... solution pour ceux qui auraient pu avoir le même problème:

 ContextWrapper.getFilesDir()
 

Trouvé ici .

38voto

Learn OpenGL ES Points 932

Vous pouvez essayer Context.getApplicationInfo (). DataDir si vous voulez le dossier de données persistant du package; getFilesDir () renvoie une sous-racine de cela.

15voto

Ali Imran Points 3936

Pour obtenir le chemin du fichier dans le package d'application;

 ContextWrapper c = new ContextWrapper(this);
Toast.makeText(this, c.getFilesDir().getPath(), Toast.LENGTH_LONG).show();
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X