我正在尝试为我的应用在内部存储中创建一个目录。以下是我用来检查目录是否存在的代码。如果该目录已存在,则返回该目录;否则,创建并返回目录。但即使在后续的方法调用中,对目录的exists()调用也总是返回false。是什么原因?谢谢
public File getMessageVoiceDirectory() {
File messageVoiceDirectory = this.myContext.getDir("Voice",Context.MODE_PRIVATE);
if (messageVoiceDirectory.exists() == false) {
messageVoiceDirectory.mkdirs();
}
return messageVoiceDirectory;
}
答案 0 :(得分:0)
首先关闭,将条件切换为
if (!messageVoiceDirectory.exists()) {
boolean actuallyCreated = messageVoiceDirectory.mkdirs();
if (!actuallyCreated){
Log.e("Activity", "Woah... the mkdirs command got called, but was not successful. We need to investigate.");
}
}
接下来,您需要检查mkdirs
的返回值。据推测,目录尚未创建。如果您没有正确的权限,可能会发生这种情况。
答案 1 :(得分:0)
你可以尝试这个。它会起作用
File path = new File(this.getFilesDir(), "DirectoryName");
if (!path.exists()) {
path.mkdirs();
Toast.makeText(this,"Created",Toast.LENGTH_LONG).show();
}
else
Toast.makeText(this,"Already Exist",Toast.LENGTH_LONG).show();
答案 2 :(得分:0)
当你正好打电话给getMessageVoiceDirectory()
时,请确保你在onCreate(),