用java 编写一个程序,在命令行中以树状结构展现特定的文件夹及其子文件(夹)!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用java 编写一个程序,在命令行中以树状结构展现特定的文件夹及其子文件(夹)!相关的知识,希望对你有一定的参考价值。
当然在理论上是可以实现的,可以将所有的子文件都以树形结构出来,但是文件很多的时候就会非常纠结我理解中的树形结构大概是这样(不知道这样的图形是不是你想要的)
a
|
------------------
| | |
b c d
以下是代码,找了系统盘下子文件较少的文件夹 C:/Windows/AppPatch,当然也可以换成你自己的路径来测试
import java.io.File;
public class FileTree
/**
* @param args
*/
public static void main(String[] args)
try
File file = new File("C:\\Windows\\AppPatch");
if(file.isDirectory())
String[] fileList = file.list();
String fileName = file.getName();
int allLength = 0;
for(int i=0;i<fileList.length;i++)
allLength += (fileList[i]+" ").length();
for(int i=0;i<allLength/2;i++)
System.out.print(" ");
System.out.println(fileName);
for(int i=0;i<allLength/2;i++)
System.out.print(" ");
for(int i=0;i<fileName.length()/2;i++)
System.out.print(" ");
System.out.println("|");
for(int i=0;i<allLength;i++)
System.out.print("-");
System.out.println("");
for(int i=0;i<fileList.length;i++)
int tmpLength = fileList[i].length();
int subLength = tmpLength/2;
int lastLength = tmpLength - subLength - 1;
for(int j=0;j<subLength;j++)
System.out.print(" ");
System.out.print("|");
for(int j=0;j<lastLength;j++)
System.out.print(" ");
System.out.print(" ");
System.out.println("");
for(int i=0;i<fileList.length;i++)
System.out.print(fileList[i]+" ");
else
System.out.println("对不起,你提供的路径不是文件夹");
catch (Exception e)
e.printStackTrace();
这时可以发现输出每一个子文件/子文件夹的名字已经比较长,要是再想输出这些子文件夹里面的文件,那幅图个人觉得相当纠结,也许是我水平没够吧或是我理解错了你说的树形结构
希望以上代码对你有帮助 参考技术A import java.io.*;//new File 时必须引入IO包
public class FileList
public static void main(String[] args)
File f = new File("d:/test");//设置根目录,该目录下别放太多文件和文件夹
System.out.println(f.getName());
tree(f, 1);
private static void tree(File f, int level)
String preStr = "";
for(int i=0; i<level; i++)
preStr += " ";
File[] childs = f.listFiles();//返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
for(int i=0; i<childs.length; i++)
System.out.println(preStr + childs[i].getName());
if(childs[i].isDirectory())
tree(childs[i], level + 1);
本回答被提问者采纳
java File类-递归遍历目录结构和树状展现
f.listFiles(); //返回目录下的所有子目录和子文件版本一:未加计数器分层次
static void f(File f)
System.out.println(f.getName());
if(f.isDirectory())
File[] files=f.listFiles(); //如果是目录,返回目录下的所有子目录和子文件
for(File fi:files)
f(fi);
版本二:加计数器分层次
static void f(File f,int level) //添加计数器
for(int i=0;i<level;i++)
System.out.print("-"); //打印“-”
System.out.println(f.getName());
if(f.isDirectory())
File[] files=f.listFiles(); //如果是目录,返回目录下的所有子目录和子文件
for(File fi:files)
f(fi,level+1); //每次递归是level加1
以上是关于用java 编写一个程序,在命令行中以树状结构展现特定的文件夹及其子文件(夹)!的主要内容,如果未能解决你的问题,请参考以下文章