黑马程序员技术交流社区
标题:
关于文件目录删除的困惑
[打印本页]
作者:
海世山盟
时间:
2014-5-30 17:39
标题:
关于文件目录删除的困惑
public static void remove(File dir)
{
File[] files=dir.listFiles();
for(int x=0;x<files.length;x++)
{
if(files[x].isDirectory())
remove(files[x]);
else
files[x].delete();
}
dir.delete();
}
这是老师的代码,我想问的是:delete删除目录只有在目录为空的时候才起作用。然而程序中只是遍历到文件才删除,也就说我们只删除了目录下面所有的文件,这样一来目录下面应该还有很多空文件夹才对啊。如果针有空文件夹的话,那么目录dir就不会为空,那删除dir应该是没有效果的啊?
作者:
丁绍然
时间:
2014-5-30 18:45
说的很对啊
作者:
小坏坏
时间:
2014-5-30 19:23
for()循环遍历了文件夹里所有的内容,die,delete()实在对文件里所有文件及文件夹删除后才进行的,所以此时dir是个空文件夹可以删除。
作者:
GoodBoy123
时间:
2014-5-30 22:24
不会,你这个程序我也刚才试了一下,是可以删的,这是用递归,要知道的是,当程序执行到dir.delete时不是结束这个方法,而是向后返,返到在循环里调用本方法的地方,也就是remove(ifles[x])这地方。直到文件包括子文件夹都删除了。
作者:
龙健
时间:
2014-6-1 01:11
一直往下查询,往下往下,知道查询的文件是以个标准文件,也就是类似于什么.txt.doc之类的文件,这个时候你在for循环里面就把这些文件给删除了,接着就是要返回当前层的上一层了,但是在返回是,有个dir.delete,这个就是你传入的一个文件夹(文件),这是这里面的东西都没有了,可以删除了,,,,
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2