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

王朝java/jsp·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

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

import java.io.*;

public class DeleteAll {

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

public void delAll(File f) throws IOException {

if(!f.exists())//文件夹不存在不存在

throw new IOException("指定目录不存在:"+f.getName());

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

if(!(rslt=f.delete())){//先尝试直接删除

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

File subs[] = f.listFiles();

for (int i = 0; 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();

}

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航