Android获取应用程序的“主页”数据目录

时间:2011-01-19 18:52:07

标签: android android-context home-directory

一个简单的问题,与应用程序写入内部存储器时的默认“主页”目录有关。默认情况下,创建的所有文件都由操作系统(2.2)放置在:

/data/data/your.package/files

在读取文件时,通过openFileInput()openFileOutput()保持适当的上下文时,使用相同的默认值。但是,如果我需要检查文件是否存在,例如,使用File类,我需要在构造函数中指定整个路径。

我看到有Environment.getDataDirectory()(返回/data),Environment.getRootDirectory()(返回/system)等,但与获取应用的“主页”目录无关。< / p>

这不是什么大不了的事,但我宁愿不硬编码我的App for File使用的完整路径(比如包名称更改,比如未来OS版本中的路径更改),如果有某种方式的话以编程方式引用应用程序的“主页”目录。

3 个答案:

答案 0 :(得分:90)

当然,永远不会失败。在发布上述问题后大约一分钟找到解决方案...解决那些可能遇到同样问题的解决方案:

ContextWrapper.getFilesDir()

找到here

答案 1 :(得分:35)

您可以尝试Context.getApplicationInfo().dataDir 如果你想要包的持久数据文件夹。

getFilesDir()会返回此子根。

答案 2 :(得分:14)

获取应用程序包中的文件路径;

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