使用递归打印该目录下的所有子目录和文件
2017-12-11 16:57
309 查看
传入一个目录,以树形方式展现该目录中的所有子目录和文件,另外,在展现的时候将目录排在上面,文件排在下面,每一层要加上缩进
张龙老师的《递归详解》
package com.zkh.io; import java.io.File; import java.util.ArrayList; public class TestFile2 { private static int number; public static void main(String[] args) { //传入一个目录,以树形方式展现该目录中的所有子目录和文件,另外,在展现的时候将目录排在上面,文件排在 //下面,每一层要加上缩进 File f = new File("d:/zkh"); printFileName(f); } public static void printFileName(File file){ if(file.isDirectory() && 0 != file.listFiles().length){ File[] files = file.listFiles(); files = sortFile(files); for(File f : files){ StringBuffer sb = new StringBuffer(); if(f.isFile()){ sb.append(getTab(number)); sb.append(f.getName()); }else{ sb.append(getTab(number)); sb.append(f.getName()); sb.append("\\"); } System.out.println(sb); if(f.isDirectory()){ number++; printFileName(f); number--; } } } } //得到子目录前需要加多少tab private static String getTab(int number){ StringBuffer sb = new StringBuffer(); for(int i = 0; i < number; i++){ sb.append("\t"); } return sb.toString(); } //对子目录进行排序,文件夹在前,文件在后 private static File[] sortFile(File[] files) { ArrayList<File> list = new ArrayList<File>(); for(File f : files){ if(f.isDirectory()){ list.add(f); } } for(File f : files){ if(f.isFile()){ list.add(f); } } return list.toArray(new File[files.length]); } }
张龙老师的《递归详解》
相关文章推荐
- 查找指定目录下所有文件(包括子目录)——使用递归
- C#递归读取目录里所有文件(包括子目录)及其文件操作
- 列出目录下所有文件包括子目录的文件路径-采用递归方式
- 递归删除指定目录下所有文件及子目录
- 使用线程加载指定目录下的所有子目录和文件名称到TreeView中
- 使用FindFirstFile和FindNextFile查找某个目录下的所有文件(包括子目录)
- findfirst findnext 递归查找指定目录下所有子目录下所有文件,为什么总是死机?
- grep技巧(-r):在某一目录下递归[所有子目录]查找某一字串:+文件路径
- C#使用线程加载指定目录下的所有子目录和文件名称到TreeView中
- 使用线程加载指定目录下的所有子目录和文件名称到TreeView中
- MFC递归遍历目录下所有子目录和文件
- Linux下使用Shell脚本删除一个目录下的所有子目录和文件
- 使用FindFirstFile和FindNextFile查找某个目录下的所有文件(包括子目录)
- 查找目录下的及子目录下的 所有的给定后缀名的文件并将其路径打印到一个文件中。
- 使用递归显示某个文件目录下所有文件名
- 使用FindFirstFile和FindNextFile查找某个目录下的所有文件(包括子目录)
- 递归遍历目录下的所有文件,并打印文件名字
- C#递归读取目录里所有文件(包括子目录)及其文件操作
- Java递归打印目录下所有的子目录和文件
- 使用FindFirstFile和FindNextFile查找某个目录下的所有文件(包括子目录)