目录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();
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top