【问题标题】:How to create a directory and sub directory structure with java?如何用java创建目录和子目录结构?
【发布时间】:2014-08-07 05:26:43
【问题描述】:

您好,我想用 java.lang. 创建目录和子目录。 我的目录结构是从当前应用程序目录开始的,意思是在当前项目目录中,如下所示...

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

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

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

【问题讨论】:

  • 不相关,但是——作为一个仅供参考——这个词是带有“a”的“项链”,而不是“e”。
  • 你看过File类吗?
  • 谢谢兄弟仅供参考:) 是的,我已经尝试过使用这个文件 createImages = new File("Images"); createImages.mkdir(); destinationDir=createImages.getAbsolutePath();
  • 但我找不到如何在图像目录中创建子目录

标签: java


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    从 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);
    

    【讨论】:

    • 这很方便,在单元测试期间创建临时目录时也是如此。
    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        【解决方案5】:

        你可以直接使用file.mkdirs(),它会创建子目录。

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

        【讨论】:

          猜你喜欢
          • 2010-11-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-11-24
          • 2010-10-20
          • 1970-01-01
          • 2014-04-09
          相关资源
          最近更新 更多