如何用java创建目录和子目录结构?

你好,我想用java创建目录和子目录。 我的目录结构是从当前应用程序目录开始的,当前项目目录中的表示如下…

Images | |+ Background | |+ Foreground | |+Necklace |+Earrings |+Etc... 

我知道如何创建目录但我需要创建子目录我尝试使用以下代码应该是后续步骤?

 File file = new File("Images"); file.mkdir(); 

您可以使用File.mkdir()或File.mkdirs()来创建目录。 在这两者之间,后一种方法更宽容,并将根据需要创建所有中间目录。 此外,由于我在您的问题中看到您使用“\\”,我建议使用File.separator作为可移植路径分隔符字符串。

Java 7开始,您可以使用java.nio.file.Filesjava.nio.file.Paths类。

 Path path = Paths.get("C:\\Images\\Background\\..\\Foreground\\Necklace\\..\\Earrings\\..\\Etc"); try { Files.createDirectories(path); } catch (IOException e) { System.err.println("Cannot create directories - " + e); } 

这是一个棘手的解决方案 (因为我只使用一条路径进入整个结构)。

如果你不喜欢棘手的解决方案,你可以使用4个简单的路径:

 Path p1 = Paths.get("C:\\Images\\Background"); Path p2 = Paths.get("C:\\Images\\Foreground\\Necklace"); Path p3 = Paths.get("C:\\Images\\Foreground\\Earrings"); Path p4 = Paths.get("C:\\Images\\Foreground\\Etc"); 

然后为所有这些调用createDirectories方法:

 Files.createDirectories(p1); Files.createDirectories(p2); Files.createDirectories(p3); Files.createDirectories(p4); 

您可以使用File.mkdirs()创建所有父目录。

File.mkdirs() – 创建此抽象路径名所指定的目录,包括任何必需但不存在的父目录。 请注意,如果此操作失败,则可能已成功创建一些必需的父目录。

Java Doc – File.mkdirs()

你可以用File#mkdirs()东西File#mkdirs()

 // The "/" is cross-platform safe as a path-separator in Java. // So is "\\" but that's twice the characters! String path = createImages.getAbsolutePath() + "/Images"; File f = new File(path); if (!f.isDirectory()) { boolean success = f.mkdirs(); if (success) { System.out.println("Created path: " + f.getPath()); } else { System.out.println("Could not create path: " + f.getPath()); } } else { System.out.println("Path exists: " + f.getPath()); } 

根据链接的Javadoc,

创建此抽象路径名指定的目录,包括任何必需但不存在的父目录。 请注意,如果此操作失败,则可能已成功创建一些必需的父目录。

使用下面的代码在Java中创建目录。

  1. 我们可以使用单个目录。

新文件(“D:\\ Images”)。mkdir();

  1. 对于子目录

新文件(“D:\\ Images \\ Foreground \\ Earrings”)。mkdirs();

例如:

 package com.msr.io; import java.io.File; public class CreateDirectory { public static void main(String[] args) { File file = new File("D:\\Images"); if (!file.exists()) { if (file.mkdir()) { System.out.println("directory created successfully"); } else { System.out.println("directory is not created"); } } File files = new File("D:\\Images\\Foreground\\Earrings"); if (!files.exists()) { if (files.mkdirs()) { System.out.println("sub directories created successfully"); } else { System.out.println("failed to create sub directories"); } } } }