【发布时间】:2015-12-05 12:37:08
【问题描述】:
如果该文件不存在,我想在外部存储中创建一个新文件。
我已经在 SO 中阅读了类似的问题,并且在我的清单中有 WRITE_EXTERNAL_STORAGE 许可。
在使用 android 5.1 和 xperia t 使用 android 4.3 的 GenyMotion 模拟器上进行测试,结果是相同的,我在 file.createNewFile() 上得到“open failed: EACCES (Permission denied)”。我检查了运行时,getExternalStorageState functoin 返回值为“MOUNTED”。
注意:如果我手动创建文件,我的代码可以完美运行并读取内容,这意味着可以访问外部存储。
我虽然使用getExternalPublicStorage 将代码中的另一个位置写入外部存储以保存捕获的图像,但它工作正常!
File f = Environment.getExternalStorageDirectory();
File config = new File(f, "poinila config" + ".txt");
if (!config.exists()) {
if (!config.createNewFile()) {
// toast that creating directory failed
} else {
writeDefaultIpPort();
}
}
编辑: 路径字符串为“/storage/sdcard0/poinila config.txt”
【问题讨论】:
-
你检查这个link
-
'如果我手动创建文件,我的代码可以完美运行' ???请解释“手动”以及它与您的代码有什么关系。
-
'Logger.toast("创建目录失败");'.目录???
-
@greenapps:“手动”是指不通过应用程序代码创建文件。就像通过文件管理器创建一样,或者将现有的同名文件复制到外部存储目录中。
-
Logger.toast("... Directory") 是个失误!我会改正的。
标签: android android-external-storage