黑马程序员技术交流社区
标题:
不知怎么删除整个文件夹,求解答。。。。
[打印本页]
作者:
木子小四
时间:
2016-4-10 00:43
标题:
不知怎么删除整个文件夹,求解答。。。。
本帖最后由 木子小四 于 2016-4-10 00:44 编辑
需求如下:从键盘接收一个文件夹路径,删除该文件夹
--------------------------------------------------------------------------------------------------------------
我整的代码:只能删里面的文件,却剩下空文件夹。。。
public static void main(String[] args) {
File f = getfile();
shan(f);
}
//获取正确的文件夹路径
public static File getfile(){
System.out.println("输入一个文件夹路径");
while(true){
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
File f = new File(s);
if(!f.exists()){
System.out.println("输入错误,输入的不是文件夹路径");
}else if(f.isFile()){
System.out.println("输入错误,输入的是文件路径");
}else if(f.isDirectory()){
return f;
}
}
}
//对指定的路径,进行删除操作
public static void shan(File f ){
File[] arr = f.listFiles();
//遍历数组
for (File f1 : arr) {
if(f1.isFile()){
System.out.println(f1.getName());
f1.delete();
}else if(f1.isDirectory()){
shan(f1);
}
}
}
}
复制代码
作者:
Hopkin_hu
时间:
2016-4-10 14:02
你这个程序写的就是删除文件,将shan()方法中,f1.isFile()和f1.isDirectory()交换就可以了.
作者:
65708535
时间:
2016-4-10 14:51
全是大神啊,还需要加油
作者:
木子小四
时间:
2016-4-10 17:05
Hopkin_hu 发表于 2016-4-10 14:02
你这个程序写的就是删除文件,将shan()方法中,f1.isFile()和f1.isDirectory()交换就可以了. ...
ok 我这样搞了一下:
else if(f1.isDirectory()){
32. shan(f1);
33. f1.delete();
34. f.deleteOnExit();
35. }
复制代码
就妥了
作者:
H_shaohui
时间:
2016-4-10 17:09
额~~不赞成沙发的观点。
如果想要删除文件后把空文件夹也删掉。你的程序主要在for循环结束后,再加上一句f.delete();就可以了
这样就会达到你想要的效果
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2