业务需要一个临时文件夹用一下,那就创建一个文件,用完后删除就可以了。
1、先拿到文件的名称。不带后缀
根据传过来的 MultipartFile 文件,
/**获取文件名称-不带后缀*/
String fileName = file.getOriginalFilename();
int dotIndex1 = fileName.lastIndexOf("."); // 获取文件名后缀的起始位置
String name = (dotIndex1 == -1) ? fileName : fileName.substring(0, dotIndex1); // 获取文件名不带后缀的部分
System.out.println(name); // 输出
2、创建临时文件夹和文件。
/**创建临时文件夹*/
String filePath = MedicalInsuranceFileEnum.TEMP_FILE.displayName(); //自己定义路径我是放在项目里面的 "src\\main\\temp\\"
File tempFile = new File(filePath + name);//临时文件夹
if (!tempFile.isFile()) {
tempFile.mkdirs();
}
String filePath1 = tempFile.getPath() + "\\" + tempFile.getName() + ".zip"; // 指定ZIP文件路径
File zipFile = new File(filePath1); // ZIP文件
3、将传过来的文件复制到本地创建的文件里。
使用IOUtils 进行复制到本地的临时文件里面。
import org.apache.commons.io.IOUtils;
FileOutputStream outputStream = new FileOutputStream(zipFile);
IOUtils.copy(file.getInputStream(), outputStream);
outputStream.close();
4、之后可以进行解压处理,参照ZIP文件解压
5、删除文件及文件夹
/**
* 删除文件或者文件夹
*/
private void deleteFolder(String name) {
File file = new File("src\\main\\temp\\" + name);
deleteFolder(file);
}
private void deleteFolder(File folder) {
File[] files = folder.listFiles();
if (files != null) {
for (File file : files) {
if (file.isDirectory()) {
deleteFolder(file);
} else {
file.delete();
}
}
}
folder.delete();
}
可以删除目录下的文件和文件夹。