【问题标题】:Java - Create Multiple Subfolders at OnceJava - 一次创建多个子文件夹
【发布时间】:2016-05-27 14:10:54
【问题描述】:

我正在尝试创建一个函数,该函数使用 Java 在一条指令中创建多个文件夹/子文件夹。 我可以使用Filemkdirs() 方法来创建单个文件夹及其父文件夹。

我想要的结构示例:

folder
└── subfolder
    ├── subsubfolder1
    ├── subsubfolder2
    └── subsubfolder3

例如在 linux 中,我可以使用以下命令来实现:

mkdir -p folder/subfolder/{subsubfolder1,subsubfolder2,subsubfolder3}

有没有办法在 Java 中实现这一点?

【问题讨论】:

    标签: java directory subdirectory


    【解决方案1】:

    不确定是否存在这样的方法,但你当然可以定义一个:

    import java.io.File;
    import java.util.Arrays;
    
    class Test {
    
      public static boolean createDirectoriesWithCommonParent(
          File parent, String...subs) {
    
        parent.mkdirs();
        if (!parent.exists() || !parent.isDirectory()) {
          return false;
        }
    
        for (String sub : subs) {
          File subFile = new File(parent, sub);
          subFile.mkdir();
          if (!subFile.exists() || !subFile.isDirectory()) {
            return false;
          }
        }
        return true;
      }
    
      public static void main(String[] args) {
         createDirectoriesWithCommonParent(new File("test/foo"), "a", "b", "c");
      }
    }
    

    【讨论】:

    • 这不是我想要的。我将更改问题以获得更好的解释。
    【解决方案2】:

    我们可以在简单的步骤中使用路径创建一个或多个目录:

    public static Path createDirectories() throws IOException {
        String folderPath = "E://temp/user/UserId/profilePicture";
        Path path = Paths.get(folderPath);
        return Files.createDirectories(path);
    }
    

    Path、Paths 和 Files 类可以在 java.nio.file.* 中找到;包如下:

    import java.nio.file.Files;
    import java.nio.file.Path;
    import java.nio.file.Paths;
    

    注意:-确保方法应该抛出 IOException 或在 try-catch 内。

    【讨论】:

      猜你喜欢
      • 2019-11-24
      • 2018-08-09
      • 2017-01-27
      • 2013-03-13
      • 1970-01-01
      • 2016-10-23
      • 2022-01-21
      • 1970-01-01
      • 2013-01-09
      相关资源
      最近更新 更多