首页 > 解决方案 > 写入带有子文件夹的新文件时自动创建整个路径

问题描述

我想在当前不存在的文件夹中写入一个新文件。

我这样使用它:

File file = new File("C:\\user\\Desktop\\dir1\\dir2\\filename.txt");
file.getParentFile().mkdirs();
FileWriter writer = new FileWriter(file);

filename.txt在一个名为dir1.dir2.

我需要dir1/dir2

在此处输入图像描述

我怎样才能做到这一点?

请不要将此问题标记为重复,因为我在研究后没有得到我需要的东西。

更新 1

我正在使用带有 Spring Boot 的 Jasper Report 来导出 pdf 文件。

我需要在目录名下创建文件current year. 在此文件夹下,我需要创建一个名为 的目录the current month,并在此目录下导出 pdf 文件。例子 :

(2018/auguest/report.pdf)

LocalDateTime用来获取 yearmonth

这是我的代码的一部分:

    ReportFiller reportFiller = context.getBean(ReportFiller.class);
    reportFiller.setReportFileName("quai.jrxml");
    reportFiller.compileReport();

    reportFiller = context.getBean(ReportFiller.class);
    reportFiller.fillReport();

    ReportExporter simpleExporter = context.getBean(ReportExporter.class);
    simpleExporter.setJasperPrint(reportFiller.getJasperPrint());

    LocalDateTime localDateTime = LocalDateTime.now();
    String dirName = simpleExporter.getPathToSaveFile() + "/"+ 
    localDateTime.getYear() + "/" + localDateTime.getMonth().name();
    File dir = new File(dirName);
    dir.mkdirs();
    String fileName = dirName + "/quaiReport.pdf";
    simpleExporter.exportToPdf(fileName, "");

这是我得到的:

在此处输入图像描述

标签: javapath

解决方案


试试下面的代码,它将按照您的期望工作

File dir = new File("C:\\Users\\username\\Desktop\\dir1\\dir2");
dir.mkdirs();
File file = new File(dir, "filename.txt");
FileWriter newFile = new FileWriter(file);

您需要先创建文件夹结构,然后再归档


推荐阅读