file.delete()的删除不了,因为显示的该文件还被JAVA进程占用。
/**
* 删除单个文件
*
* @param fileName
* 要删除的文件的文件名
* @return 单个文件删除成功返回true,否则返回false
*/
public static boolean deleteFile(String fileName) {
File file = new File(fileName);
// 如果文件路径所对应的文件存在,并且是一个文件,则直接删除
if (file.exists() && file.isFile()) {
if (file.delete()) {
log.info("删除单个文件" + fileName + "成功!");
return true;
} else {
log.info("删除单个文件" + fileName + "失败!");
return false;
}
} else {
log.info("删除单个文件失败:" + fileName + "不存在!");
return false;
}
}
/**
* 强制删除
* @param fileName
* @return
*/
public static boolean forceDelete(String fileName)
{
File f = new File(fileName);
boolean result = false;
int tryCount = 0;
while(!result && tryCount++ <10)
{
log.info("try to delete file "+ f.getName() +" cnt:"+tryCount);
System.gc();
result = f.delete();
}
return result;
}
本文介绍了一种在Java中处理文件删除问题的方法,当遇到文件被进程占用无法删除的情况时,通过循环尝试和垃圾回收机制来实现文件的强制删除。这对于解决Java应用中常见的文件操作难题提供了实用的解决方案。
1167

被折叠的 条评论
为什么被折叠?



