用Java访问Android数据目录
如何访问/读取Android数据目录? 我试过了
File file = new File(Environment.getDataDirectory().toString());
Log.w("File", "read? "+file.canRead());
Log.w("File", "write?"+file.canWrite());
但两者都返回false。我怎样才能解决这个问题? 我已经添加了外部权限:
<uses-permission 安卓:name="安卓.permission.READ_EXTERNAL_STORAGE" />
<uses-permission 安卓:name="安卓.permission.WRITE_EXTERNAL_STORAGE" />
# 1 楼答案
问题在于
Environment.getDataDirectory()
返回的是系统数据目录路径,而不是应用程序的路径。这就是为什么你没有读或写的权限。 基本上有两种方法:改为调用
getFilesDir()
。类似这样的内容:File file = getFilesDir()
注意,必须从活动或服务上下文调用它将包名附加到
Environment.getDataDirectory()
返回的路径,如下所示:File file = new File( Environment.getDataDirectory() + "com.mycompany.myapp/")