【问题标题】:how to add folders in subdirectory in java?如何在java的子目录中添加文件夹?
【发布时间】:2023-03-10 13:24:02
【问题描述】:

reference

 `String pathname = "C:/sata1/pm8/data/pmin/";`
    String year ="UNKNOWN";
    year = String.valueOf(Calendar.getInstance().get(Calendar.YEAR));
    String yearM = "UNKNOWN";
    yearM = new SimpleDateFormat("yyyyMM").format(new Date());
    String yearD ="UNKNOWN";
    yearD =new SimpleDateFormat("yyyyMMdd").format(new Date());
    pathname+=year+"/"+yearM+ "/"+yearD;
    File directory;
    directory = new File(pathname);
    if (!directory.exists()){
        directory.mkdirs();
    }

这是我尝试过的。这使得目录和子目录像这样 C:\sata1\pm8\data\pmin\2017\201709\20170919。现在我必须在20170919下创建4个文件夹。

Directory(sata1) 
└── subDirectory(pm8) 
      └── subDirectory(data) 
            └── subDirectory(pmin) 
                  └── subDirectory(year) 
                    └── subDirectory(yearM) 
                        └── subDirectory(yearD) 
                                  ├── folder1 
                                  ├── folder2 
                                  └── folder3  like this

【问题讨论】:

  • 您在代码中遇到了什么错误?
  • 你应该逐步创建所有不存在的目录
  • @РоманДанилов 不,你不知道。 mkdirs 创建所有目录。
  • 我在 yearD 之后创建了 upto yearD 子目录,只有我必须创建 4folder 吗?所以我可以这样做
  • 您似乎知道如何制作文件夹。再制作三个文件夹有什么困难?

标签: java io java-io


【解决方案1】:

这是在 java 中创建目录的示例程序。 您可以将其作为参考并编写程序来创建名称为当年、当月、当日的目录。

  • 首先使用 java.util.Date 获取当前日期
  • 然后在日期中执行一些字符串操作以获取目录名称。
  • 并根据您的需要对此代码进行一些更改。

    // shows how to create multiple directories in java
    // (multiple directory levels)
    public class JavaCreateMultipleDirectoriesExample
    {
      public static void main(String[] args)
      {
        // the folders "000/111/222" don't exist initially
        File dir = new File("/Users/al/tmp/000/111/222");
    
        // create multiple directories at one time
        boolean successful = dir.mkdirs();
        if (successful)
        {
          // created the directories successfully
          System.out.println("directories were created successfully");
        }
        else
        {
          // something failed trying to create the directories
          System.out.println("failed trying to create the directories");
        }
      }
    }
    

【讨论】:

  • thanx raj 我已经创建了我必须在最后一个目录中创建文件夹的目录
  • 我已经添加了参考
  • @Niti Kapoor 因此您需要检查最后一个目录是否正确,您可以使用此代码,例如。 文件 dir1 = new File("/Users/al/tmp/000/111/folder1");文件 dir2 = new File("/Users/al/tmp/000/111/folder2");文件 dir3 = new File("/Users/al/tmp/000/111/folder3");布尔成功 = dir1.mkdirs();
  • 是的,我明白这一点,但我已经在字符串中创建了最后一个目录,所以我正在这样做 File dir1 =newFile("/pathname/cuts").mkdirs();但它不显示任何文件夹
  • 如果我必须添加 newFile("//sata1/pm8/data/pmin/scans/cuts").mkdirs();如果我必须在 pmin 之后添加它的 k,但我必须在 yearD 之后添加,并且它是递归的并添加到 pathname+=pathname+=year+"/"+yearM+ "/"+yearD
【解决方案2】:

我每次都创建不同的目录。

String pathname1 = "C:";
String db = "db";
pathname1 += find2 + "/" + db;
System.out.println(pathname1);
File directory1 = new File(pathname1);
if (!directory1.exists()) {
    directory1.mkdirs();
}
String pathname2 = "C:";
String ocr = "ocr";
pathname2 += find2 + "/" + ocr;
System.out.println(pathname2);
File directory2 = new File(pathname2);
if (!directory2.exists()) {
    directory2.mkdirs();
}
String pathname3 = "C:";
String output = "output";
pathname3 += find2 + "/" + output;
System.out.println(pathname3);
File directory3 = new File(pathname3);
if (!directory3.exists()) {
    directory3.mkdirs();
}
String pathname4 = "C:";
String scans = "scans";
pathname4 += find2 + "/" + scans;
System.out.println(pathname4);
File directory4 = new File(pathname4);
if (!directory4.exists()) {
    directory4.mkdirs();
}

【讨论】:

    猜你喜欢
    • 2019-05-13
    • 1970-01-01
    • 2012-11-12
    • 1970-01-01
    • 1970-01-01
    • 2012-10-23
    • 1970-01-01
    • 1970-01-01
    • 2019-06-17
    相关资源
    最近更新 更多