解决File.delete()删除不掉文件
文件 解决 删除 File delete
2023-09-14 08:58:28 时间
首先注意两点:
-
此文件被使用的时候无法删除(比如网络输出没关闭流)
-
判断此文件是否存在再做删除(exists)
-
删除文件夹之前先删除文件夹下的所有文件(递归解决)
-
判断是否删除成功会有返回值,文件名错了的话,删除文件不会报错。(new File("x://123.txt"),但是123.txt不存在,不报错)
// 输出文件流 ou = resp.getOutputStream(); in = report.getInputStream(); int bytes = 0; byte[] bufferOut = new byte[1024]; while ((bytes = in.read(bufferOut)) != -1) { ou.write(bufferOut, 0, bytes); } in.close(); ou.flush(); ou.close();//关掉输出流,否则文件无法删除 /** * 删除报表包含的临时文件 */ public void delete() { if (files != null) { Iterator<File> iter = files.iterator(); while (iter.hasNext()) { File temp = iter.next(); if(temp.exists()){ temp.delete(); logger.debug("文件:" + temp.getAbsolutePath() + " 删除成功!"); }else{ logger.debug("文件:" + temp.getAbsolutePath() + "不存在!"); } } files = null; } if (file != null) { if(file.exists()){ file.delete(); logger.debug("文件:" + file.getAbsolutePath() + " 删除成功!"); file = null; }else{ logger.debug("文件:" + file.getAbsolutePath() + " 不存在!"); } file = null; } }
相关文章
- Linux gunzip命令:解压文件
- 解决“‘ping‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。”的问题
- 有了core-dump文件,BUG终于解决了!
- 使用geotools导入shp文件到Oracle数据库时表名带下划线问题的解决方法
- Linux 硬盘对拷:一键解决文件安全复制(linux硬盘对拷)
- 限制解决MySQL文件上传大小的限制(mysql文件上传大小)
- 解决Linux文件删除的痛苦(linux文件无法删除)
- Linux U盘数据恢复:解决无意失去文件的痛点(linuxu盘修复)
- 如何使用Oracle进行DBF文件的还原(oracle还原dbf)
- 文件解决Linux无法删除文件问题(linux不能删除)
- 文件Linux解决无法删除文件的方法(linux无法删除)
- MySQL数据库中的CSV文件存取简单可靠(csv mysql数据库)
- MySQL导出Excel文件(xlsx)时遇到错误的解决方法(mysql xlsx出错)
- jsp读取大对象CLOB并生成xml文件示例
- 一些文件未注册导致mssql表文件无法找开的解决方法
- SWFUpload与CI不能正确上传识别文件MIME类型解决方法分享
- 在ashx文件中使用session的解决思路
- Asp.net在ashx文件中处理Session问题解决方法
- Tomcat无法加载css和js等静态资源文件的解决思路
- Rsync服务器文件同步的搭建以及使用
- ASP的chr(0)文件上传漏洞原理和解决方法介绍