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

时间:2014-08-07 05:26:44

标签: java

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

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

我知道如何创建目录,但是我需要创建子目录,我尝试使用以下代码,接下来的步骤应该是什么?

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

5 个答案:

答案 0 :(得分:24)

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

答案 1 :(得分:13)

Java 7 开始,您可以使用java.nio.file.Files& java.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);

答案 2 :(得分:3)

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

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

Java Doc - File.mkdirs()

答案 3 :(得分:2)

你可以使用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,

  

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

答案 4 :(得分:0)

您可以只使用file.mkdirs(),它将创建子目录。

String path = images + File.separator + Background + File.separator + Foreground + File.separator + Necklace + File.separator  + Earrings ;
File file = new File( path );
file.mkdirs();