누군가 내 응용 프로그램 디렉토리의 경로를 얻는 방법을 알고 있습니까? (예를 들어 /data/data/my.app.lication/
)
현재이 방법을 사용하고 있습니다. myActivity.getFilesDir().getParent();
그러나 더 간단한 해결책이있을 때 해결 방법처럼 보입니다. 또한 부작용 files
은 불필요한 디렉토리 생성입니다 .
설명 : 먼저-답장 해 주셔서 감사합니다. 다른 해결 방법이 아닌 이미 존재하는 방법이 있는지 이해하려고 노력합니다.
답변
PackageManager m = getPackageManager();
String s = getPackageName();
PackageInfo p = m.getPackageInfo(s, 0);
s = p.applicationInfo.dataDir;
eclipse가 잡히지 않은 것에 대해 걱정한다면 NameNotFoundException
다음을 사용할 수 있습니다.
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);
}
답변
최소 API 4 이상으로 애플리케이션 데이터 디렉토리를 가져 오는 더 간단한 방법이 있습니다. 모든 컨텍스트 (예 : 활동, 애플리케이션)에서 :
getApplicationInfo().dataDir
http://developer.android.com/reference/android/content/Context.html#getApplicationInfo ()
답변
답변
코드에서 이것을 사용하십시오.
context.getApplicationInfo().dataDir
답변
현재 Android 애플리케이션 패키지의 경우 :
public String getDataDir(Context context) throws Exception {
return context.getPackageManager().getPackageInfo(context.getPackageName(), 0).applicationInfo.dataDir;
}
모든 패키지 :
public String getAnyDataDir(Context context, String packageName) throws Exception {
return context.getPackageManager().getPackageInfo(packageName, 0).applicationInfo.dataDir;
}
답변
파일에 액세스하려는 경우 여기에 설명 된대로 openFileOutput()
및 openFileInput()
방법을 시도해보세요 . 내부 메모리의 지정된 파일에 대한 입력 / 출력 스트림을 자동으로 엽니 다. 이를 통해 디렉토리와 객체를 모두 우회 할 수 있으며 이는 매우 깨끗한 솔루션입니다.File
답변
@ jared-burrows의 솔루션을 기반으로합니다. 모든 패키지에 대해 컨텍스트를 매개 변수로 전달 중 …
public static String getDataDir(Context context) throws Exception {
return context.getPackageManager()
.getPackageInfo(context.getPackageName(), 0)
.applicationInfo.dataDir;
}