这次项目是调用外部接口,推送数据。其中一个接口是csv文件批量传数据。也就是我们这边获取到List<实体>数据,然后转为csv文件,传送到接口里。生成csv文件就涉及到要向服务器写入文件。问了一下,建议用临时路径写文件。还有生成的文件不要在调用成功后立马删除,建议7天后删除。
所以就在项目上线前2个小时开始了改代码。
删除文件的思路是:先找到路径下所有7天前的文件,然后删除。
这里就要对文件做时间标识。文件在命名时添加日期例如: exaple_file_20190620_12312.csv
查找方式是找到以exaple_file_20190613开头的文件,然后删除。
记录一下代码:
获取路径
String courseFile=System.getProperty("java.io.tmpdir");
log.info("path:" + courseFile);
fileDelete(courseFile);
根据路径删除
public static void fileDelete(String filePath) throws Exception{
File tempDir = new File(filePath);
File[] subFiles = tempDir.listFiles();
String prefix = "example_" + DateUtils
.formatDate(com.company.messag**.***.util.DateUtils.addDays(new Date(), -7), "yyyyMMdd");
for (File file : subFiles) {
if (file.isFile() && file.getName().startsWith(prefix)) {
file.delete();
}
}
}
好了,就这些。
代码参考了此博客:https://blog.csdn.net/Leo_01169/article/details/84942958 在此表示感谢