打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
java删除文件及目录
userphoto

2008.09.28

关注

java中删除目录事先要删除目录下的文件或子目录。用递归就可以实现。

public void del(String filepath) throws IOException{
     File f = new File(filepath);//定义文件路径       
     if(f.exists() && f.isDirectory()){//判断是文件还是目录
         if(f.listFiles().length==0){//若目录下没有文件则直接删除
             f.delete();
         }else{//若有则把文件放进数组,并判断是否有下级目录
             File delFile[]=f.listFiles();
             int i =f.listFiles().length;
             for(int j=0;j<i;j++){
                 if(delFile[j].isDirectory()){
                      del(delFile[j].getAbsolutePath());//递归调用del方法并取得子目录路径
                 }
            delFile[j].delete();//删除文件
             }
         }
      del(filepath);//递归调用
     }
       
}

----------------------------------------------------------------------------------------------------------------

删除一个非空目录并不是简单地创建一个文件对象,然后再调用delete()就可以完成的。要在平台无关的方式下安全地删除一个非空目录,你还需要一个算法。该算法首先删除文件,然后再从目录树的底部由下至上地删除其中所有的目录。

只要简单地在目录中循环查找文件,再调用delete就可以清除目录中的所有文件:
static public void emptyDirectory(File directory) {
    File[ ] entries = directory.listFiles( );
    for(int i=0; i<entries.length; i++) {
        entries[i].delete( );
    }
}
这个简单的方法也可以用来删除整个目录结构。当在循环中遇到一个目录时它就递归调用deleteDirectory,而且它也会检查传入的参数是否是一个真正的目录。最后,它将删除作为参数传入的整个目录。
static public void deleteDirectory(File dir) throws IOException {
    if( (dir == null) || !dir.isDirectory) {
        throw new IllegalArgumentException(
                  "Argument "+dir+" is not a directory. "
              );
    }

    File[ ] entries = dir.listFiles( );
    int sz = entries.length;

    for(int i=0; i<sz; i++) {
        if(entries[i].isDirectory( )) {
            deleteDirectory(entries[i]);
        } else {
            entries[i].delete( );
        }
    }

   dir.delete();
}
在Java 1.1以及一些J2ME/PersonalJava的变种中没有File.listFiles方法。所以只能用File.list,它的返回值一个字符串数组,你要为每个字符串构造一个新的文件对象。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
java 文件操作集
Java 文件与文件夹操作实用函数
Java遍历文件夹的2种方法_王炜华的空间
php递归获取目录内文件(包含子目录)封装类分享
C#递归删除文件夹目录及文件
javaIO--File类相关及示例总结及心得
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服