Java遍历输出指定目录、树形结构所有文件包括子目录下的文件

网友投稿 274 2023-07-30


Java遍历输出指定目录、树形结构所有文件包括子目录下的文件

下面通过一段代码介绍下java输出指定目录、树形结构下的所有文件包括子目录中的文件的方法,并附有效果图。

import java.io.File;

public class ReadDirectory {

// 文件所在的层数

private int fileLevel;

/**

* 生成输出格式

* @param name 输出的文件名或目录名

* @param level 输出的文件名或者目录名所在的层次

* @return 输出的字符串

*/

public String createPrintStr(String name, int level) {

// 输出的前缀

String printStr = "";

// 按层次进行缩进

for (int i = ; i < level; i ++) {

printStr = printStr + " ";

}

printStr = printStr + "- " + name;

return printStr;

}

/**

* 输出初始给定的目录

* @param dirPath 给定的目录

*/

public void printDir(String dirPath){

// 将给定的目录进行分割

String[] dirNameList = dirPath.split("\\\\");

// 设定文件level的base

fileLevel = dirNameList.length;

// 按格式输出

for (int i = ; i < dirNameList.length; i ++) {

System.out.println(createPrintStr(dirNameList[i], i));

}

}

/**

http:// * 输出给定目录下的文件,包括子目录中的文件

* @param dirPath 给定的目录

*/

public void readFile(String dirPath) {

// 建立当前目录中文件的File对象

File file = new File(dirPath);

// 取得代表目录中所有文件的File对象数组

File[] list = file.listFiles();

// 遍历file数组

for (int i = ; i < list.length; i++) {

if (list.isDirectory()) {

System.out.println(createPrintStr(list.getName(), fileLevel));

fileLevel ++;

// 递归子目录

readFile(list.getPath());

fileLevel --;

} else {

System.out.println(createPrintStr(list.getName(), fileLevel));

}

}

}

public static void main(String[] args) {

ReadDirectory rd = new ReadDirectory();

String dirPath = "D:\\有道词典";

rd.printDir(dirPath);

rd.readFile(dirPath);

}

}

输出结果如下:

以上就是本文的全部内容,希望大家喜欢。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:分享java打印简单图形的实现代码
下一篇:浅谈Java编程中的单例设计模式
相关文章

 发表评论

暂时没有评论,来抢沙发吧~