一个简单的问题,与应用程序写入内部存储器时的默认“主页”目录有关。默认情况下,创建的所有文件都由操作系统(2.2)放置在:
中/data/data/your.package/files
在读取文件时,通过openFileInput()
,openFileOutput()
保持适当的上下文时,使用相同的默认值。但是,如果我需要检查文件是否存在,例如,使用File类,我需要在构造函数中指定整个路径。
我看到有Environment.getDataDirectory()
(返回/data
),Environment.getRootDirectory()
(返回/system
)等,但与获取应用的“主页”目录无关。< / p>
这不是什么大不了的事,但我宁愿不硬编码我的App for File使用的完整路径(比如包名称更改,比如未来OS版本中的路径更改),如果有某种方式的话以编程方式引用应用程序的“主页”目录。
答案 0 :(得分:90)
答案 1 :(得分:35)
您可以尝试Context.getApplicationInfo().dataDir
如果你想要包的持久数据文件夹。
getFilesDir()
会返回此子根。
答案 2 :(得分:14)
获取应用程序包中的文件路径;
ContextWrapper c = new ContextWrapper(this);
Toast.makeText(this, c.getFilesDir().getPath(), Toast.LENGTH_LONG).show();