53

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

/data/data/your.package/files

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

我看到有Environment.getDataDirectory()(returns /data)、Environment.getRootDirectory()(returns /system) 等,但与获取应用程序的“主”目录无关。

这不是什么大不了的事,但如果有某种方法可以引用以编程方式创建应用程序的“主”目录。

4

3 回答 3

98

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

ContextWrapper.getFilesDir()

在这里找到。

于 2011-01-19T18:54:37.700 回答
38

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

getFilesDir()返回 this 的子根。

于 2012-10-09T03:42:49.377 回答
15

To get the path of file in application package;

ContextWrapper c = new ContextWrapper(this);
Toast.makeText(this, c.getFilesDir().getPath(), Toast.LENGTH_LONG).show();
于 2013-09-12T07:49:22.263 回答