我面对这个问题几天,我无法弄明白。所以,我有一个应用程序想要在内部目录的根目录中创建一个文件夹(不在app内部目录中,但在设备内部目录中),所以我看到它实际上是外部目录。现在我使用这样的代码:
File file = new File(getExternalStorageDirectory().getAbsolutePath(), 'someFolder);
boolean created = file.mkdir();
在某些设备上,这不起作用。 created
总是假的。我不知道在什么设备上,因为我知道来自Crashlytics(我只能说在三星和联想设备上)。在我的Nexus 7和Xperia Sola上,它非常完美。
有人可以帮我解决这个问题吗?
答案 0 :(得分:0)
将您的file.mkdir()
替换为(file.mkdir() || file.isDirectory())
。
您的来电getExternalStorageDirectory
必须为getExternalStorageDirectory()
首先使用getExternalStorageState()
(== Environment.MEDIA_MOUNTED
)检查外部存储的状态并记录其返回状态;不要尝试在只读或不可用的存储介质上创建目录。