解决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.readbufferOut)) != -1) {
                    ou.writebufferOut, 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);
                iftemp.exists)){
                    temp.delete);
                    logger.debug"文件:" + temp.getAbsolutePath) + " 删除成功!");
                }else{
                    logger.debug"文件:" + temp.getAbsolutePath) + "不存在!");
                }
            }
            files = null;
        }
        if file != null) {
            iffile.exists)){
                file.delete);
                logger.debug"文件:" + file.getAbsolutePath) + " 删除成功!");
                file = null;
            }else{
                logger.debug"文件:" + file.getAbsolutePath) + " 不存在!");
            }
            file = null;
        }
    }

Published by

风君子

独自遨游何稽首 揭天掀地慰生平