题
目录some_folder,some_folder_1,some_folder_2和some_folder_3最初不存在的。
File folder1 = new File("some_folder/some_folder_1");
File folder2 = new File("some_folder/some_folder_2");
File folder3 = new File("some_folder/some_folder_3");
if(!folder1.exists()) {
folder1.mkdirs();
}
if(!folder2.exists()) {
folder2.mkdirs();
}
if(!folder3.exists()) {
folder3.mkdirs();
}
那是要做到这一点的好办法?
解决方案
不要使用路径分隔,使用正确的构造,而不是:
File folder1 = new File("some_folder", "some_folder_1");
if (!folder1.exists()) {
folder1.mkdirs(); // returns a boolean
}
其他提示
那么你不需要测试 - 如果该目录已经存在mkdirs刚刚返回false
。我宁愿使用一个“基地”文件some_folder
避免硬编码的斜线,即使正斜杠的可能的工作在最流行的平台:)
File baseFolder = new File("some_folder");
new File(baseFolder, "some_folder_1").mkdirs();
new File(baseFolder, "some_folder_2").mkdirs();
new File(baseFolder, "some_folder_3").mkdirs();
请注意,这不会引发任何异常,如果已经存在的名字,但作为的文件的,而不是文件夹...
或
String[] folders = {"some_folder_1", "some_folder_2", "some_folder_3"};
File root = new File("some_folder");
for (String folder: folders)
new File(root, folder).mkdirs();
不隶属于 StackOverflow