黑马程序员技术交流社区

标题: 黑马程序员递归方法的特点及删除目录文件作业 [打印本页]

作者: ulddfhv    时间: 2015-4-17 22:13
标题: 黑马程序员递归方法的特点及删除目录文件作业
问题:什么是递归?
在方法中自己调用了自己。
问题:递归使用的注意事项?
1.        递归一定要有结束条件
2.        递归次数不能过多,容易引起内存溢出。
  1. package cn.itcast.test;

  2. import java.io.File;

  3. public class Test3 {

  4.         /**
  5.          * @param args
  6.          *            递归删除带内容的目录案例 delete()方法,它如果删除目录,目录下有子,删除不了。
  7.          *            分析:得到目录下的所有的子,如果子是文件
  8.          *            ,直接删除就可以,如果子不是文件,是目录,那么递归调用,删除目录下的子,最后要将目录也删除。
  9.          */
  10.         public static void main(String[] args) {
  11.                 //声明一个目录       
  12.                 File file=new File("F:\\day20-IO输入输出");               
  13.                 deleteAll(file);
  14.                
  15.         }
  16.                 public static void deleteAll(File file)
  17.                 {
  18.                
  19.                         //如果目录为空或者目录下为文件 直接调用delete方法删除
  20.                                 if(file.list().length==0||file.isFile())
  21.                                 {
  22.                                         file.delete();
  23.                                 }       
  24.                                 else        //如果目录不为空,为子目录或者文件
  25.                                 {
  26.                                         // 非空目录不能直接删除      获取待删除目录下的所有File对象
  27.                                         File[] files=file.listFiles();
  28.                                         //遍历目录中的所有文件
  29.                                         for(File f:files)
  30.                                         {
  31.                                                 deleteAll(f);        //自己调用自己的方法递归删除里面的所有文件及目录
  32.                                                 file.delete();        //删除本目录
  33.                                         }                                       
  34.                                 }
  35.                                                        
  36.                         }
  37. }

复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2