Java 如何在调用FileUtils.saveAndUnzipToTempDir后删除文件夹
我正在使用Java 如何在调用FileUtils.saveAndUnzipToTempDir后删除文件夹,java,delete-file,fileutils,Java,Delete File,Fileutils,我正在使用FileUtils.saveAndUnzipToTempDir将文件夹/文件解压缩到临时目录,我想在完成文件夹的浏览后删除该文件夹 我没有很好的java体验,但我认为saveAndUnzipToTempDir进程尚未完成,不知道如何等待进程完成,或者如何终止它: 这是我的代码: public boolean postFile(@RequestParam String filename, @RequestParam MultipartFile file) { FileResults
FileUtils.saveAndUnzipToTempDir
将文件夹/文件解压缩到临时目录,我想在完成文件夹的浏览后删除该文件夹
我没有很好的java体验,但我认为saveAndUnzipToTempDir
进程尚未完成,不知道如何等待进程完成,或者如何终止它:
这是我的代码:
public boolean postFile(@RequestParam String filename, @RequestParam MultipartFile file) {
FileResultsDTO fileResultsDTO = FileUtils.saveAndUnzipToTempDir(file, filename);
for(String fileName : fileResultsDTO.getUnzipDir().list()){
// do something.
}
//Find the temp folder where the other files/folders are uploaded and
//deleted those
File directory = new File(FileUtils.getTempDirectoryPath());
FileUtils.deleteDirectory(directory);
FileUtils.forceDelete(directory);
delete(directory);
}
public static void delete(File file)
throws IOException {
if(file.isDirectory()){
//directory is empty, then delete it
if(file.list().length==0){
FileDeleteStrategy.FORCE.delete(file);
FileUtils.deleteQuietly(file);
file.delete();
System.out.println("Directory is deleted : "
+ file.getAbsolutePath());
}else{
//list all the directory contents
String files[] = file.list();
for (String temp : files) {
//construct the file structure
File fileDelete = new File(file, temp);
//recursive delete
delete(fileDelete);
}
//check the directory again, if empty then delete it
if(file.list().length==0){
FileDeleteStrategy.FORCE.delete(file);
FileUtils.deleteQuietly(file);
file.delete();
System.out.println("Directory is deleted : "
+ file.getAbsolutePath());
}
}
}else{
//if file, then delete it
FileDeleteStrategy.FORCE.delete(file);
FileUtils.deleteQuietly(file);
file.delete();
System.out.println("File is deleted : " + file.getAbsolutePath());
}
}
因此,如果您仔细查看代码,您可以看到我也尝试使用:
FileDeleteStrategy.FORCE.delete(file);
FileUtils.deleteQuietly(file);
file.delete();