- package homeWork;
- import java.io.*;
- /**
- * 需求: 列出指定目录下的文件或文件夹,包含子目录中的内容。
- *
- * 分析: 因为目录中还有目录,只要使用同一个列出目录功能的函数即可,
- * 在列出过程中出现的还是目录的话,就再次调用本功能,也就是调用函数自身。
- * 而这种表现形式,就叫做递归。
- *
- * Tips:1.限定条件
- * 2.注意递归次数,避免内存溢出
- *
- * @author Qihuan
- *
- */
- public class ListFilesDemo {
- public static void main(String[] args) {
-
- File dir = new File("G:\\课程");
- showListFiles(dir,0);
- }
- private static void showListFiles(File dir, int level) {
-
- System.out.println(getLevel(level)+dir.getName());
-
- level++;
-
- File[] files = dir.listFiles();
-
- for (int i = 0; i < files.length; i++) {
- if(files[i].isDirectory())
- showListFiles(files[i],level);
- else
- System.out.println(getLevel(level)+files[i]);
- }
- }
- private static String getLevel(int level) {
- StringBuilder sb = new StringBuilder();
-
- for (int i = 0; i < level; i++) {
- sb.append("- ");
- }
- return sb.toString();
- }
- }
复制代码
|
|