解决File.Delete()删除不掉文件
Posted 疯狂路亚人
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决File.Delete()删除不掉文件相关的知识,希望对你有一定的参考价值。
首先注意以下问题:
-
此文件被使用的时候无法删除(比如网络输出没关闭流)
-
判断此文件是否存在再做删除(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; } }
以上是关于解决File.Delete()删除不掉文件的主要内容,如果未能解决你的问题,请参考以下文章
File.delete有些文件不能删除,而Files.delete(path)可以,进行深入探究其原因