怎样实现删除多层子目录?

java_new1 2011-07-06 08:15:20
如下面代码中,怎样实现删除全部子目录,即删除新建的所有目录?还有就是为什么所有的子目录的父目录都是一样的?

/**
*程序运行结果为:
* next3目录删除成功!
next3父目录:F:\java\my Program\next\next1\next2
next2父目录:F:\java\my Program\next\next1\next2
next2目录删除成功!
next1父目录:F:\java\my Program\next\next1\next2
next1目录删除成功!
* 怎样实现删除全部子目录?
*/
import java.io.*;
public class Exercise1 {
public static void main(String[] args){
File file=new File("F:\\java\\my Program\\next\\next1\\next2\\next3");
File file1=new File("");
File file2=new File("");
File file3=new File("");
try{
if(file.exists()){
file.delete();
System.out.println("next3目录删除成功!");
if(file.getParentFile().exists()){
file1=file.getParentFile();
System.out.println("next3父目录:"+file1.toString());
file1.delete();
}
if(file1.getParentFile().exists()){
file2=file1.getParentFile();
System.out.println("next2父目录:"+file1.toString());
file2.delete();
System.out.println("next2目录删除成功!");
}
if(file2.getParentFile().exists()){
file3=file.getParentFile();
System.out.println("next1父目录:"+file1.toString());
file3.delete();
System.out.println("next1目录删除成功!");
}
// if(file3.getParentFile().exists()){
// file4=file.getParentFile();
// file4.delete();
// System.out.println("目录删除成功!");
// }
// if(file4.getParentFile().exists()){
// file5=file.getParentFile();
// file5.delete();
// System.out.println("目录删除成功!");
// }
// if(file5.getParentFile().exists()){
// file6=file.getParentFile();
// file6.delete();
// System.out.println("目录删除成功!");
// }*/
//
// file.getParentFile().delete();
// System.out.println("目录删除成功!");
// file.getParentFile().delete();
// System.out.println("目录删除成功!");
// file.getParentFile().delete();
// System.out.println("目录删除成功!");
// file.getParentFile().delete();
// System.out.println("目录删除成功!");
// file.getParentFile().delete();
// System.out.println("目录已经删除!");
}else{
file.mkdirs();
System.out.println("目录创建成功!");
}
}catch(Exception e){
e.printStackTrace();
}
}

}

...全文
220 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
shimingwen 2011-11-11
  • 打赏
  • 举报
回复
for (File childFile : file.listFiles()) {
if (childFile.isDirectory() && childFile.listFiles().length > 0)
deleteDirs(childFile);
childFile.delete();
}
chenchenyangll 2011-07-06
  • 打赏
  • 举报
回复
遍历删除吧
zqfddqr 2011-07-06
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 iis81365341 的回复:]
用java调用DOS命令rd /q/s path可以直接删除。
[/Quote]同意呵呵 这个方便
iis81365341 2011-07-06
  • 打赏
  • 举报
回复
用java调用DOS命令rd /q/s path可以直接删除。
加权不平权 2011-07-06
  • 打赏
  • 举报
回复
while(file!=null){
if(file.exists())
{
file.delete();
file=file.getParentFile();
}
}
飞跃颠峰 2011-07-06
  • 打赏
  • 举报
回复
如这样:


while (file.exists()) {
parent = file.getParentFile();
file.delete();
file = parent;
}


不过你要小心,删到最后(根目录)一定删不下去
另外,测试的时候小心别把有用的文件删掉了

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧