用Java定义打印文件/文件夹名称的方法printFileName,for循环打印num个制表符tab(java中用“\t”表示),不带换行打印File对象名称,前面拼接|-。打印完后需要换行。再定义打印文件夹printDir(1.调用printFileName方法打印文件夹名称。2.获取源文件夹中的所有的文件和文件夹对应的File对象数组。3.判断,如果File对象数组是null或者没有内容,结束方法。4.遍历File对象数组判断当前File对象是文件,调用printFileName方法,打印文件名称。判断当前File对象是文件夹,递归调用printDir方法。)。在main方法中,创建被遍历文件夹的File对象。调用PrintDir方法,传递源文件和0,完成文件夹目录结构的打印。
时间: 2024-03-19 12:44:20 浏览: 92
JAVA方法的定义和方法的重载Overload.docx
5星 · 资源好评率100%
好的,请看下面的Java代码实现:
```
import java.io.File;
public class PrintFileDemo {
/**
* 打印文件/文件夹名称的方法
* @param file 文件/文件夹对应的File对象
* @param num 制表符数目
*/
public static void printFileName(File file, int num) {
for (int i = 0; i < num; i++) {
System.out.print("\t");
}
System.out.println("|-" + file.getName());
}
/**
* 打印文件夹的方法
* @param dir 文件夹对应的File对象
* @param num 制表符数目
*/
public static void printDir(File dir, int num) {
printFileName(dir, num); // 打印文件夹名称
File[] files = dir.listFiles(); // 获取源文件夹中的所有的文件和文件夹对应的File对象数组
if (files == null || files.length == 0) { // 如果File对象数组是null或者没有内容,结束方法
return;
}
for (File file : files) {
if (file.isFile()) { // 如果当前File对象是文件,调用printFileName方法,打印文件名称
printFileName(file, num + 1);
} else { // 如果当前File对象是文件夹,递归调用printDir方法
printDir(file, num + 1);
}
}
}
public static void main(String[] args) {
File dir = new File("C:\\Users\\test");
printDir(dir, 0); // 调用PrintDir方法,传递源文件和0,完成文件夹目录结构的打印
}
}
```
请注意,该代码将会输出目录树结构,如果输出到控制台可能会很长,建议将输出结果保存到文件中。
阅读全文