java调用删除的方法删除文件,方法是对的,但是却删除不了
2016-12-12 15:48
253 查看
原因是jvm占用着文件 (你自己可以手动删除一下,如果删除不了,就是被占用了)
解决方案:在执行该方案前把垃圾回收一下,System.gc();
eg1;
File file =new File(new SystemParameterBeans().getSystemParameterValue("SBWJCFLJ")+"/gyscptp/"+equipementId+"/thumb/"+cptp);
System.gc();
file.delete();
eg2:(这种写法实在jsp中的调用java方法的写法)
该方法可以删除制定目录或者文件(及其子目录),运用了递归的方法
<%! public static void deleteAll(File path) {
System.gc();
if (!path.exists()) //路径存在
return;
if (path.isFile()) { //是文件
path.delete();
return;
}
File[] files = path.listFiles();//如果里面有目录会继续遍历该目录的
for (int i = 0; i < files.length; i++) {
deleteAll(files[i]);
}
path.delete();
}
%>
为什么一定要用递归:该业务的特殊性,需要重新遍历该方法
解决方案:在执行该方案前把垃圾回收一下,System.gc();
eg1;
File file =new File(new SystemParameterBeans().getSystemParameterValue("SBWJCFLJ")+"/gyscptp/"+equipementId+"/thumb/"+cptp);
System.gc();
file.delete();
eg2:(这种写法实在jsp中的调用java方法的写法)
该方法可以删除制定目录或者文件(及其子目录),运用了递归的方法
<%! public static void deleteAll(File path) {
System.gc();
if (!path.exists()) //路径存在
return;
if (path.isFile()) { //是文件
path.delete();
return;
}
File[] files = path.listFiles();//如果里面有目录会继续遍历该目录的
for (int i = 0; i < files.length; i++) {
deleteAll(files[i]);
}
path.delete();
}
%>
为什么一定要用递归:该业务的特殊性,需要重新遍历该方法
相关文章推荐
- javabean操作文件正确,但是Jsp调用javabean时文件路径出错问题解决之JavaBean访问本地文件实现路径无关实现方法
- java调用删除文件的方法删除文件,却删除不干净
- (转)javabean操作文件正确,但是Jsp调用javabean时文件路径出错问题解决之JavaBean访问本地文件实现路径无关实现方法
- java调用文件删除方法delete()时无法删除文件
- Java调用 dll 文件里的方法
- 删除调用指定文件的进程的方法
- [编辑][Java]删除properties配置文件中键值对的方法、附带字符串和Unicode间的转换方法
- 调用系统命令实现删除文件的操作,java调用系统命令实现删除文件的操作
- java程序调用iReport生成的.jasper文件的方法
- 删除和拷贝文件递归方法(Java实现)
- Java调用.dll文件的方法
- java反射调用配置文件构造类对象,使用其方法
- 用java删除文件及文件夹的新方法
- java File的delete方法删除文件失败
- Java 中强制删除文件的方法
- 用Java删除文件夹中嵌套了很多层的文件【鼠标右键不能删除解决方法】
- linux下java jni调用.so文件的方法
- java调用exe文件的方法
- java中File的delete()方法删除文件失败的原因
- Java文件删除方法