java - 写入带有子文件夹的新文件时自动创建整个路径
问题描述
我想在当前不存在的文件夹中写入一个新文件。
我这样使用它:
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
用来获取 year
和month
这是我的代码的一部分:
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, "");
这是我得到的:
解决方案
试试下面的代码,它将按照您的期望工作
File dir = new File("C:\\Users\\username\\Desktop\\dir1\\dir2");
dir.mkdirs();
File file = new File(dir, "filename.txt");
FileWriter newFile = new FileWriter(file);
您需要先创建文件夹结构,然后再归档
推荐阅读
- c - uint8_t 类型数组的元素是否总是被打包到内存的连续字节中?
- java - Jira API 自动化 - 保证 REST
- ruby-on-rails - 如何使用现有数据库启动新的 Rails 项目?
- c++ - 在尚未从模板声明的命名空间中使用函数
- testing - 使用 Appium 进行 Nativescript 本地化测试 - 文本提取
- android - 语言环境在 Android 中返回空字符串
- python - import socketio - ValueError:信号仅在主线程中有效
- postgresql - 使用包含表中的 jsonb 数据类型对第一级查询的 where 子句进行续集
- gitlab - Gitlab x jira 集成:问题不会在状态之间转换
- sql-server - 在 MSSQL 中从链接服务器 ORACLE 快速加载数据