目录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();
}
Run Code Online (Sandbox Code Playgroud)
这是一个很好的方法吗?
不要使用路径分隔符,而是使用正确的构造函数:
File folder1 = new File("some_folder", "some_folder_1");
if (!folder1.exists()) {
folder1.mkdirs(); // returns a boolean
}
Run Code Online (Sandbox Code Playgroud)
那么你不需要测试 - false如果目录已经存在,mkdirs就会返回.我更喜欢使用一个"基础"文件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();
Run Code Online (Sandbox Code Playgroud)
请注意,如果名称已存在但不作为文件而不是文件夹,则不会抛出任何异常...