解决File.delete()删除不掉文件

简介: 首先注意两点: 此文件被使用的时候无法删除(比如网络输出没关闭流) 判断此文件是否存在再做删除(exists) 删除文件夹之前先删除文件夹下的所有文件(递归解决) 判断是否删除成功会有返回值,文件名错了的话,删除文件不会报错。

 

首先注意两点:

  1. 此文件被使用的时候无法删除(比如网络输出没关闭流)

  2. 判断此文件是否存在再做删除(exists)

  3. 删除文件夹之前先删除文件夹下的所有文件(递归解决)

  4. 判断是否删除成功会有返回值,文件名错了的话,删除文件不会报错。(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;
        }
    }

 

目录
相关文章
|
6月前
|
Java
java中File的delete()方法删除文件失败的原因和解决方案
java中File的delete()方法删除文件失败的原因和解决方案
600 0
|
9月前
|
Linux
删除大量文件和目录时报错:Argument list too long
这个目录下的文件数量我惊呆了。40W+ 的文件目录数量,直接报错了。
61 1
|
数据库管理
find 删除命令rm还是delete更快
find 删除命令rm还是delete更快
365 0
|
前端开发 Oracle 关系型数据库
[20180612]删除bootstrap$记录无法启动.txt
[20180612]删除bootstrap$记录无法启动.txt --//前几天看链接http://www.xifenfei.com/2018/05/willfully-delete-bootstrap.
1323 0
|
SQL 索引
[20180409]delete删除缓慢分析.txt
[20180409]delete删除缓慢分析.txt --//链接:http://www.itpub.net/thread-2101054-2-1.html --//大量产生记录出现缓慢的情况.
891 0
|
索引 关系型数据库 Oracle
[20171202]关于函数索引的状态.txt
[20171202]关于函数索引的状态.txt --//我曾经在一篇贴子提到索引可以disable吗?链接: --//http://blog.itpub.net/267265/viewspace-2123537/ --//实际上仅仅函数索引能disable,为什么呢?实际上自己以前并不搞清楚实际上这个跟oracle使用函数的特殊性有关.
1212 0