| //需求:删除一个有内容的文件夹。 package day15;
 
 import java.io.File;
 
 public class DiGui {
 public static void main(String[] args) {
 shanChu("D:\\Eclipse\\day15\\新建文件夹");
 }
 
 public static void shanChu(String string) {
 // TODO Auto-generated method stub
 File file=new File(string);
 File[] files=file.listFiles();
 
 for (File file1:files) {
 
 if(file1.isDirectory()){
 shanChu(file1.toString());
 System.out.println(file1.getName()+"---"+file1.delete());
 }
 else{
 System.out.println(file1.getName()+"---"+file1.delete());
 }
 System.out.println(file.getName()+"---"+file.delete());
 
 }
 
 
 }
 
 }
 以上是自己写的代码,可以实现功能,可是过程不完美,控制台显示
 3---true
 2---false
 3.txt---true
 2---true
 2---false
 1---false
 2.txt---true
 1---true
 1---false
 新建文件夹---false
 1.txt---true
 新建文件夹---true
 为什么会有false发生?哪里出了问题?
 毕老师的代码没有false发生。这是为啥呢?
 package cn.itcast.io.p1.file.test;
 
 import java.io.File;
 
 
 /*
 * 删除一个带内容的目录。
 *
 * 原理:必须从最里面往外删。
 * 需要进行深度遍历。
 *
 *
 *
 */
 public class RemoveDirTest {
 
 /**
 * @param args
 */
 public static void main(String[] args) {
 
 File dir  = new File("e:\\demodir");
 //                dir.delete();
 removeDir(dir);
 }
 
 public static void removeDir(File dir) {
 
 File[] files = dir.listFiles();
 
 for(File file : files){
 
 if(file.isDirectory()){
 removeDir(file);
 }else{
 System.out.println(file+":"+file.delete());
 }
 }
 System.out.println(dir+":"+dir.delete());
 }
 
 
 }
 
 
 |