任务描述
本关任务:实现一个文件查看器,要实现指定文件夹下所有文件以及文件夹目录结构的展示。
相关知识
可以使用isDirectory()
方法来判断一个File
对象是否是一个文件夹。
示例:
如果D://hello
是一个文件夹,则输出true
。
编程要求
请仔细阅读右侧代码,根据方法内的提示,在Begin - End
区域内进行代码补充,具体任务如下:
- 实现对给定文件夹目录结构的展示,并以文件名按升序排序的形式打印至控制台。如果是文件夹则在其名字之前加上
+--
,若是文件则加上--
,上级目录与下级目录、下级文件用两个空格作为间隔,补充完善右侧代码区中的showDirStructure(File dir)
函数实现要求的功能,其中函数参数含义如下:
1).dir
:指定要显示的文件夹。
注:main
函数可点击右上角文件夹切换至本关Test.java
文件进行查看。
测试说明
补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。
样例1
输入:src/step3/root
输出:
样例2
输入:src/step3/dir
输出:
提示:java
中的File
类有listFiles
方法可以获取文件目录。
开始挑战吧,祝你成功!
实现代码
package step3;
import java.io.File;
import java.util.Arrays;
public class Task {
/********** Begin **********/
String dir ="+--";
String wj = "--";
String level = "";
public void showDirStructure(File file) {
//判断是否是文件夹
if(file.isDirectory()){
System.out.println(level+dir+file.getName());
String level1=level;
level+=" ";
File[] files = file.listFiles();
Arrays.sort(files);
for (File file1 : files) {
showDirStructure(file1);
}
level=level1;
}else{
System.out.println(level+wj+file.getName());
}
}
/********** End **********/
}