黑马程序员技术交流社区
标题:
代码理解问题
[打印本页]
作者:
xiatian
时间:
2013-5-31 01:08
标题:
代码理解问题
public class DeleteFileDemo {
public static void main(String[] args) {
File file = new File("test");
deleteFiles(file);
}
private static void deleteFiles(File file) {
File[] fileArray = file.listFiles();
if (fileArray != null) {
for (File f : fileArray) {
if (f.isDirectory()) {
deleteFiles(f);
} else {
System.out.println(f.getName() + ":" + f.delete());
}
}
}
System.out.println(file.getName() + ":" + file.delete());
}
}
有两个文件夹,两个文件夹中分别有一个文本文件。
我的理解是,先把文件都删了,然后再删文件夹。可是系统运行的顺序是,进入第一个文件夹,先删了文件,然后直接把文件夹删了,然后到另一个文件夹里做相同操作。
删除文件夹的代码是写在for循环外面的,为什么会中途跳出来呢?
作者:
石贤芝
时间:
2013-5-31 08:24
兄弟,这个代码不是用来删除两个文件夹的,是用来完全删除一个文件夹的,即 "test” 文件夹。。。
作者:
王永贺
时间:
2013-5-31 10:29
因为你把文件夹里的东西删除后文件夹就为空了也就是 满足不了if (fileArray != null) 这个条件了 所以它就会执行if语句以外的代码也就是 System.out.println(file.getName() + ":" + file.delete()); 所以文件夹就会被删除。。。。 不知道这样说你能明白吗?
作者:
曹睿翔
时间:
2013-6-2 10:31
如果问题已经解决,再次编辑,修改主题类型为已解决,方便大家查看
否则继续追问
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2