88 votes

Obtenir le répertoire des applications

Quelqu'un sait-il comment obtenir le chemin du répertoire de mon application ? (par exemple /data/data/my.app.lication/ )

Actuellement, j'utilise cette méthode : myActivity.getFilesDir().getParent(); mais cela me semble être une solution de rechange alors qu'il existe une solution plus simple. En outre, l'effet secondaire est la création de l'élément files qui n'est pas nécessaire.

Clarification : Premièrement - Merci pour les répliques. J'essaie de comprendre s'il existe déjà une méthode qui le fait, et non pas de trouver une autre solution de contournement.

114voto

James Wald Points 6541

Il existe un moyen plus simple d'obtenir le répertoire des données de l'application avec min API 4+. Depuis n'importe quel contexte (par exemple, activité, application) :

getApplicationInfo().dataDir

[http://developer.Android.com/reference/Android/content/Context.html#getApplicationInfo()](http://developer.android.com/reference/android/content/Context.html#getApplicationInfo())

92voto

Philip Sheard Points 3721
PackageManager m = getPackageManager();
String s = getPackageName();
PackageInfo p = m.getPackageInfo(s, 0);
s = p.applicationInfo.dataDir;

Si eclipse s'inquiète d'un NameNotFoundException vous pouvez l'utiliser :

PackageManager m = getPackageManager();
String s = getPackageName();
try {
    PackageInfo p = m.getPackageInfo(s, 0);
    s = p.applicationInfo.dataDir;
} catch (PackageManager.NameNotFoundException e) {
    Log.w("yourtag", "Error Package name not found ", e);
}

25voto

RATHI Points 454

Utilisez simplement ceci dans votre code

 context.getApplicationInfo().dataDir

20voto

davibq Points 388

J'ai obtenu ceci

String appPath = App.getApp().getApplicationContext().getFilesDir().getAbsolutePath();

d'ici :

10voto

Jared Burrows Points 3932

Pour le paquet d'applications Android actuel :

public String getDataDir(Context context) throws Exception {
    return context.getPackageManager().getPackageInfo(context.getPackageName(), 0).applicationInfo.dataDir;
}

Pour n'importe quel paquet :

public String getAnyDataDir(Context context, String packageName) throws Exception {
    return context.getPackageManager().getPackageInfo(packageName, 0).applicationInfo.dataDir;
}

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