永发信息网

写在java函数删除一个目录

答案:3  悬赏:60  手机版
解决时间 2021-02-16 01:24
  • 提问者网友:疯子也有疯子的情调
  • 2021-02-15 14:38
写函数删除一个目录(该目录包括多级子目录、文本文件),同时列出目录名、子目录名以及文本文件的内容。

void deleteDirectory(String path){

最佳答案
  • 五星知识达人网友:狂恋
  • 2021-02-15 15:47
public void deleteDirectory(String path){
File f = new File(path);
if(!f.exists()){
System.out.println("not exists");
return;
}
if(f.delete()){
System.out.println("delete directory : "+f.getAbsolutePath());
}else{
File[] fs = f.listFiles();
for(int i=0;i<fs.length;i++){
if(fs[i].isDirectory()){
if(!fs[i].delete())deleteDirectory(fs[i].getAbsolutePath());
else System.out.println("delete directory : "+fs[i].getAbsolutePath());
}else{
fs[i].delete();
System.out.println("delete file : "+fs[i].getAbsolutePath());
}
}
f.delete();
System.out.println("delete directory : "+f.getAbsolutePath());
}
}
删除的时候列出文本文件内容??不知道什么意思,难道是读取文件?
全部回答
  • 1楼网友:举杯邀酒敬孤独
  • 2021-02-15 18:10
File类的delete是用来删除文件或目录的,但只能删除空目录.所以只能都树根那儿去删了.所以删除和列出目录可以同时时行,列一个,删一个.当然,这个需要用到递归的思想(因为文件夹可以套文件夹).思路是这样滴,至于编写嘛,还是要靠你自己啦.
  • 2楼网友:低血压的长颈鹿
  • 2021-02-15 16:31
挺长的,介绍一下思路吧 pathlist&lt;file&gt;里面放所有的目录 boolean b=false;判断当前目录内是否含有子目录 先吧path放进去,然后遍历它下面所有文件 如果是目录,就pathlist.add(0,src);b=true; 如果是文件,就src.delete(); 从pathlist拿第一个目录,然后把b=false; 遍历子节点 是目录就add,b=true; 是文件就删除 最后判断如果b=false 从pathlist删除当前目录,在把当前目录delete(); 重复上面的操作知道pathlist为空
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯