用java编写代码,要求定义类,列出整个目录树。 使用递归,递归的出口是一个目录下只有文件或者为空; 使用File[] listFiles()获取一个目录下的所有元素; 使用File对象的isFile()或isDirectory()判断类型;
时间: 2024-05-07 20:23:54 浏览: 46
java代码-用mkdir创建目录, 用到File类创建文件对象,list()列函数,isDirectory()判断是否目录函数。
好的,我可以回答这个问题。以下是java的代码:
```
import java.io.File;
public class DirectoryTree {
public static void main(String[] args) {
String path = "/path/to/directory"; // 替换成你想要遍历的目录路径
File directory = new File(path);
showDirectory(directory, 0);
}
private static void showDirectory(File directory, int depth) {
if (directory.isFile()) {
System.out.println(getDepthPrefix(depth) + "└── " + directory.getName()); // 文件
} else if (directory.isDirectory()) {
System.out.println(getDepthPrefix(depth) + "└── " + directory.getName() + "/"); // 目录
File[] subfiles = directory.listFiles();
for (File subfile : subfiles) {
showDirectory(subfile, depth + 1); // 递归遍历子文件
}
} else {
System.out.println("未知类型:" + directory.getName());
}
}
private static String getDepthPrefix(int depth) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < depth; i++) {
sb.append(" ");
}
return sb.toString();
}
}
```
这个代码会遍历指定目录下的所有文件和目录,并输出目录树,其中像 '└──' 这样的符号用来表示文件或文件夹的层次关系。
阅读全文