在我的应用程序中,我想在外部存储上为我的应用程序创建一个文件夹和一个子文件夹。 我还在应用程序启动时检查这些目录是否存在。 如果没有,我创建它们。
我遇到的问题是,对于第一个文件夹externalAppDirectory.exists()
返回 true ,对于子文件夹,它会返回 false 。
两个文件夹都存在于外部存储器中。
这是我的代码:
private File getModuleDirectory() {
File moduleDirectory = null;
if (isExternalStorageReadable()) {
File externalAppDirectory = new File(Environment.getExternalStorageDirectory(), "FallDetector");
if (!externalAppDirectory.exists()) {
if (isExternalStorageWritable()) {
externalAppDirectory.mkdir();
Log.d(TAG, "Created external app directory '" + externalAppDirectory.getName() + "'.");
} else
Log.d(TAG, "External storage not writable.");
}
moduleDirectory = new File(externalAppDirectory, "Modules");
Log.d(TAG, "Is directory? " + moduleDirectory.isDirectory());
if (!moduleDirectory.exists()) {
if (isExternalStorageWritable()) {
boolean isDirectoryMade = moduleDirectory.mkdir();
Log.d(TAG, "Created '" + moduleDirectory.getName() + "' directory: " + isDirectoryMade + ".");
} else
Log.d(TAG, "External storage not writable.");
}
} else
Log.d(TAG, "External storage not readable.");
return moduleDirectory;
}
这是简短的logcat:
D/ModuleLoader﹕ Is directory? false
D/ModuleLoader﹕ Created 'Modules' directory: false.
方法返回调用的moduleDirectory
路径为/storage/emulated/0/FallDetector/Modules
。
有没有人知道我的问题在哪里?