递归遍历本地目录,并以树的形式打印出来
2015-03-02 12:23
441 查看
闲来无事,简单的练习下递归的使用,并以树展示出来,菜鸟一枚,不喜勿喷。
package com.direc.common; import java.io.File; public class Test { static int k = 0; //级数 static String fpath = "绝对路径c:\\xxx\\xx"; public static void getAllFiles(File path) { File f = new File(path.getPath()); File[] files = f.listFiles(); for (int i = 0; i < files.length; i++) { int s = getK(files[i],fpath); // System.out.println(s); //级数 if(files[i].getParent().equals( //判断为所选根目录 fpath)){ k = 0; } if (files[i].isDirectory()) { String str = null; if(files[i].getParent().equals( //所选目录为根目录则直接赋值 fpath)){ str = files[i].getName(); }else{ str = "|-" + files[i].getName(); for (int j = 0; j < k; j++) { str = " " + str; } } System.out.println(str); k=0; Test.getAllFiles(files[i]); } else { if (!files[i].getParent().equals( fpath)) { String str = "|-" + files[i].getName(); for(int j = 0;j<k;j++){ str = " "+str; } System.out.println(str); } else { System.out.println(files[i].getName()); //根目录下为单文件,则直接输出 } k=0; } } } public static int getK(File f ,String fpath){ //获取层级 if(f.getParent().equals(fpath)){ return k; }else{ k++; File fk = f.getParentFile(); getK(fk,fpath); } return k; } public static void main(String[] args) { File file = new File(fpath); getAllFiles(file); } }
相关文章推荐
- C/C++ 遍历linux目录下所有文件并已树的形式打印
- 实现递归遍历指定目录,打印目录下的文件名(全路径)。
- 递归遍历目录下的所有文件,并打印文件名字
- Python:递归遍历目录,统计目录大小,并以列表的形式返回所有py文件
- java_递归遍历文件目录结构,打印所有的目录名和文件名
- [Linux C]递归遍历指定目录,以目录树形式展示
- python小例子之1 -- 递归遍历目录
- 用非递归方式遍历目录及其子目录的文件
- 目录的递归遍历
- c#里有遍历目录及子目录以树的形式展现
- 基于Java Socket的文件UpLoad代码(完美版)-用递归解决java的目录树遍历
- 基于Java Socket的文件UpLoad代码(完美版)-用递归解决java的目录树遍历
- 基于Java Socket的文件UpLoad代码(完美版)-用递归解决java的目录树遍历
- 递归遍历目录
- 基于Java Socket的文件UpLoad代码(完美版)-用递归解决java的目录树遍历
- C#遍历目录树的 递归
- 基于Java Socket的文件UpLoad代码(完美版)-用递归解决java的目录树遍历
- VBS脚本遍历目录(递归调用)
- 基于Java Socket的文件UpLoad代码(完美版)-用递归解决java的目录树遍历
- 基于Java Socket的文件UpLoad代码(完美版)-用递归解决java的目录树遍历