JSP空间欢迎您!专业JSP虚拟主机提供商!!!
返回首页
当前位置: 主页 > JSP教程 >

使用递归方法删除文件

时间:2011-01-30 12:05来源:佚名 编辑:www.jspzg.com 点击: 次   字体大小:[ ]

当前阅读得是【JSP教程】之使用递归方法删除文件!
【关键字信息】:使用,用递,递归,归方,方法
删除一个非空目录并不是简单地创建一个文件对象,然后再调用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,它的返回值一个字符串数组,你要为每个字符串构造一个新的文件对象。
标签:
顶一下
(1)
100%
踩一下
(0)
0%
------分隔线----------------------------
【郑重声明】JSP中国刊载此文不代表同意其说法或描述,仅为提供更多信息,也不构成任何投资或其他建议。本网站有部分文章是由网友自由上传。对于此类文章本站仅提供交流平台,不为其版权负责。如果您发现本网站上有侵犯您的知识产权的文章,请联系我们,我们将及时删除,谢谢!
推荐内容