黑马程序员技术交流社区

标题: Java基础学习日记 - ListFiles(含子目录内容)(IO流部分) [打印本页]

作者: qihuan    时间: 2015-7-14 21:24
标题: Java基础学习日记 - ListFiles(含子目录内容)(IO流部分)
  1. package homeWork;

  2. import java.io.*;

  3. /**
  4. * 需求:        列出指定目录下的文件或文件夹,包含子目录中的内容。
  5. *
  6. * 分析:        因为目录中还有目录,只要使用同一个列出目录功能的函数即可,
  7. *                 在列出过程中出现的还是目录的话,就再次调用本功能,也就是调用函数自身。
  8. *                 而这种表现形式,就叫做递归。
  9. *
  10. * Tips:1.限定条件
  11. *                 2.注意递归次数,避免内存溢出
  12. *
  13. * @author Qihuan
  14. *
  15. */
  16. public class ListFilesDemo {
  17.         public static void main(String[] args) {
  18.                
  19.                 File dir = new File("G:\\课程");
  20.                 showListFiles(dir,0);
  21.         }

  22.         private static void showListFiles(File dir, int level) {
  23.                
  24.                 System.out.println(getLevel(level)+dir.getName());
  25.                
  26.                 level++;
  27.                
  28.                 File[] files = dir.listFiles();
  29.                
  30.                 for (int i = 0; i < files.length; i++) {
  31.                         if(files[i].isDirectory())
  32.                                 showListFiles(files[i],level);
  33.                         else
  34.                                 System.out.println(getLevel(level)+files[i]);
  35.                 }
  36.         }

  37.         private static String getLevel(int level) {
  38.                 StringBuilder sb = new StringBuilder();
  39.                
  40.                 for (int i = 0; i < level; i++) {
  41.                         sb.append("- ");
  42.                 }
  43.                 return sb.toString();
  44.         }
  45. }
复制代码







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