Java遍历输出指定目录、树形结构所有文件包括子目录下的文件
程序员文章站
2024-03-05 11:40:48
下面通过一段代码介绍下java输出指定目录、树形结构下的所有文件包括子目录中的文件的方法,并附有效果图。
import java.io.file;
pub...
下面通过一段代码介绍下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)); } } /** * 输出给定目录下的文件,包括子目录中的文件 * @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); } }
输出结果如下:
以上就是本文的全部内容,希望大家喜欢。