|
|
|
| 使用递归方法删除文件 |
编辑:rocks 审核:rocks 文章来源:IT狐
关键词:io 发表日期:2006-03-03 10:12:52 浏览次数:4703次 |
|
|
|
|
本文版权归原作者,中国JAVA手机网收录本文的目的是让更多人阅读到此文章。转载请注明出处为中国JAVA手机网<www.cnjm.net>
来自:http://www.cnjm.net/tech/article1073.html [转载于IT狐]
删除一个非空目录并不是简单地创建一个文件对象,然后再调用delete()就可以完成的。要在平台无关的方式下安全地删除一个非空目录,你还需要一个算法。该算法首先删除文件,然后再从目录树的底部由下至上地删除其中所有的目录。
只要简单地在目录中循环查找文件,再调用delete就可以清除目录中的所有文件: static public void emptyDirectory(File directory) { File[ ] entries = directory.listFiles( ); for(int i=0; i<entries.length; i++) {
JAVA手机网[www.cnjm.net] entries[i].delete( ); }
JAVA手机网[www.cnjm.net] }
JAVA手机网[www.cnjm.net] 这个简单的方法也可以用来删除整个目录结构。当在循环中遇到一个目录时它就递归调用deleteDirectory,而且它也会检查传入的参数是否是一个真正的目录。最后,它将删除作为参数传入的整个目录。 static public void deleteDirectory(File dir) throws IOException {
JAVA手机网[www.cnjm.net] if( (dir == null) || !dir.isDirectory) { throw new IllegalArgumentException( "Argument "+dir+" is not a directory. " ); }
File[ ] entries = dir.listFiles( ); int sz = entries.length;
JAVA手机网[www.cnjm.net] for(int i=0; i<sz; i++) { if(entries[i].isDirectory( )) { deleteDirectory(entries[i]); } else {
JAVA手机网[www.cnjm.net] entries[i].delete( ); } }
dir.delete(); } 在Java 1.1以及一些J2ME/PersonalJava的变种中没有File.listFiles方法。所以只能用File.list,它的返回值一个字符串数组,你要为每个字符串构造一个新的文件对象。
来自:http://www.cnjm.net/tech/article1073.html
|
|
|
|
|
|
相关文章
跟我学制作Pak文件 [2006-04-04]
在Java中操作Zip文件,压缩/解压 [2006-03-03]
用java压缩文件示例 [2006-03-03]
Nokia资源文件路径的问题 [2006-02-27]
|
|
| 最新评论
|
|
|
|