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

一个简单的问题,涉及应用程序写入内部存储器时的默认“主目录”目录。 默认情况下,所有创build的文件都由OS(2.2)放置在:

/data/data/your.package/files 

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

我看到有Environment.getDataDirectory() (返回/data ), Environment.getRootDirectory() (返回/system )等,但没有关系到获取应用程序的“主目录”。

这不是一个大问题,但是我宁愿不要将完整path硬编码到我的应用程序文件中(如果有一些方法可以引用应用程序的“家”目录编程。

当然,永远不会失败。 对于那些可能有同样问题的人发布上述问题解决scheme后,大约一分钟后find解决scheme:

 ContextWrapper.getFilesDir() 

在这里find。

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

getFilesDir()返回这个的一个子根。

获取应用程序包中的文件path

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