zoukankan      html  css  js  c++  java
  • java File delete()执行失败原因(转)

    java.io.File里的delete操作很实用也很常用,可以用来删除单独的文件和某一目录。但有时候会出现delete失败的情况,出现这种情况的原因一般有以下几种:
    1、删除时还有其他程序在使用该文件,此时将无法正确删除
    2、没有close关闭和该文件相关的所有输入输出流等,导致无法删除(这一点是最容易忘记的,你犯的可能就是这一条)
    3、当删除某一目录时,必须保证该目录下没有其他文件才能正确删除,否则将删除失败。这里可以采用listFiles对目录下的文件或者目录进行处理。
    下面给出一个具体的例子:

    File f = new File(path);
    DataOutputStream dos = new DataOutputStream(new FileOutputStream(f));
     if (f.exists()) {
                        System.out.println(f.getAbsoluteFile());
                        if (!f.delete()) {
                            System.out.println("请关闭使用该文件的所有进程或者流!!");
                        } else {
                            System.out.println(f.getName()+" 成功被删除!");
                        }
                    }

    此时f是无法delete的,即f.delete()将返回false,原因就在于没有关闭dos.所以需要在if之前加入一句f.close(),这样就可以删除成功了。

    File f = new File(path);
    DataOutputStream dos = new DataOutputStream(new FileOutputStream(f));
    dos.close();
     if (f.exists()) {
                        System.out.println(f.getAbsoluteFile());
                        if (!f.delete()) {
                            System.out.println("请关闭使用该文件的所有进程或者流!!");
                        } else {
                            System.out.println(f.getName()+" 成功被删除!");
                        }
                    }
  • 相关阅读:
    day 50 jquery之看我操作
    day 49 JavaScript中BOM和DOM
    day 43 CSS前端
    day 42 前端HTML
    day 41 mysql索引以及前端的简介
    day 40 mysql 之视图,触发器,事务,存储过程及函数
    day 39数据库mysql之多表查询
    day 38 数据库MySQL之单表查询
    day 37 数据库MySQL基本操作
    39套漂亮的后台模板
  • 原文地址:https://www.cnblogs.com/softidea/p/3711295.html
Copyright © 2011-2022 走看看