java

位置:IT落伍者 >> java >> 浏览文章

Java的File对象递归删除目录下所有内容


发布日期:2024年06月22日
 
Java的File对象递归删除目录下所有内容

一个File对象如果是目录那么delete()方法要求目录已经是空的否则不能删除为了不管如何都删除一个指定文件夹下的所有内容于是有了今天随手的一个小段子算是初学Java的小练习

import javaio*;

public class DeleteAll {

//删除文件夹下所有内容包括此文件夹

public void delAll(File f) throws IOException {

if(!fexists())//文件夹不存在不存在

throw new IOException(指定目录不存在:+fgetName());

boolean rslt=true;//保存中间结果

if(!(rslt=fdelete())){//先尝试直接删除

//若文件夹非空枚举递归删除里面内容

File subs[] = flistFiles();

for (int i = ; i <= subs.length - 1; i++) {

if (subs[i].isDirectory())

delAll(subs[i]);//递归删除子文件夹内容

rslt = subs[i].delete();//删除子文件夹本身

}

rslt = f.delete();//删除此文件夹本身

}

if(!rslt)

throw new IOException("无法删除:"+f.getName());

return;

}

public static void main(String[] args) {

DeleteAll da= new DeleteAll();

try {

da.delAll(new File("someDir"));

}

catch (IOException ex) {

ex.printStackTrace();

}

}

}

               

上一篇:Java编程风格与命名规范整理

下一篇:Java语言深入 文件和流