Java遍历输出指定目录、树形结构所有文件包括子目录下的文件
下面通过一段代码介绍下Java输出指定目录、树形结构下的所有文件包括子目录中的文件的方法,并附有效果图。
importjava.io.File; publicclassReadDirectory{ //文件所在的层数 privateintfileLevel; /** *生成输出格式 *@paramname输出的文件名或目录名 *@paramlevel输出的文件名或者目录名所在的层次 *@return输出的字符串 */ publicStringcreatePrintStr(Stringname,intlevel){ //输出的前缀 StringprintStr=""; //按层次进行缩进 for(inti=;i<level;i++){ printStr=printStr+""; } printStr=printStr+"-"+name; returnprintStr; } /** *输出初始给定的目录 *@paramdirPath给定的目录 */ publicvoidprintDir(StringdirPath){ //将给定的目录进行分割 String[]dirNameList=dirPath.split("\\\\"); //设定文件level的base fileLevel=dirNameList.length; //按格式输出 for(inti=;i<dirNameList.length;i++){ System.out.println(createPrintStr(dirNameList[i],i)); } } /** *输出给定目录下的文件,包括子目录中的文件 *@paramdirPath给定的目录 */ publicvoidreadFile(StringdirPath){ //建立当前目录中文件的File对象 Filefile=newFile(dirPath); //取得代表目录中所有文件的File对象数组 File[]list=file.listFiles(); //遍历file数组 for(inti=;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)); } } } publicstaticvoidmain(String[]args){ ReadDirectoryrd=newReadDirectory(); StringdirPath="D:\\有道词典"; rd.printDir(dirPath); rd.readFile(dirPath); } }
输出结果如下:
以上就是本文的全部内容,希望大家喜欢。