今天在用extjs tree的时候发神经,想用java打印出文件加的树状结构,结果和在命令行敲tree要一样。
自己做第一遍的结果像下面这样:
test
├1
│├1.txt
│├11
││├111.txt
││└112.txt
│└12
比如结点1没有兄弟了,则它的所有的孩子的左边的那条线就不该出现。
想了好久, 没有好的结果, 在网上找了一个, 发现消化起来不简单,可能我比较笨。
今天把问题拿出来, 感兴趣的来试试。贴代码有注释能让人很快看懂的有奖。
我的版本贴在
http://blog.csdn.net/sunxing007/archive/2008/11/26/3383182.aspx
自己做第一遍的结果像下面这样:
test
├1
│├1.txt
│├11
││├111.txt
││└112.txt
│└12
比如结点1没有兄弟了,则它的所有的孩子的左边的那条线就不该出现。
想了好久, 没有好的结果, 在网上找了一个, 发现消化起来不简单,可能我比较笨。
今天把问题拿出来, 感兴趣的来试试。贴代码有注释能让人很快看懂的有奖。
我的版本贴在
http://blog.csdn.net/sunxing007/archive/2008/11/26/3383182.aspx
解决方案 »
- SocketException: Unexpected end of file from server这个异常时怎么回事
- 这段JAVA io代码一直出现问题,不知道为什么啊,还请高手帮忙,我已经郁闷几天了。。。
- 线程构造方法thread()和thread(this)的区别在哪里?
- java程序如何实现在后台运行?
- 在线等待,寻求解决:一个百思不得其解的报错,请诸位大侠给予指点,有代码
- main的类里不能有方法吗,我这个程序很简单,难道非要声明为static后再把方法体放到main外面吗?(我没太多得分了,请谅解,谢谢)
- 论坛,各位大牛求助
- 输出有错
- 昨天有了自己的专栏又升为三星,特此散分,感谢大家的支持与帮助
- 在Jbuilder中怎么给应用程序打包?
- Eclipse开发JSP很多未解析错误??
- 帮忙写个简单的算法
import java.io.*;
public class TestTree {
public static void main(String[] args) {
File f = new File(args[0]); //输入路径
System.out.println(f.getName());
Tree(f,1);
}
private static void Tree (File f,int level) {
File[] next = f.listFiles();
String sign = "└ ";
for(int i=0; i < level ;i++) {
sign = " " + sign;
}
for(int i=0; i< next.length ; i++) {
System.out.println(sign + next[i].getName());
if(next[i].isDirectory()){
Tree(next[i],level + 1);
}
}
}
}
test
└ 1
└ 1.txt
└ 11
└ 111.txt
└ 112.txt
└ 12
└ test.pdf
肯定不合要求了,你在cmd下面输入命令tree看看。
结果我已经有了, 我只想看看有没有更好的程序或解释
import java.io.File;
public class ShowFile { public static void main(String[] args) {
File f=new File("G://JAVA//File类常用方法//创建文件名//A");
tree(f); }
private static void tree(File f){
File[] childs=f.listFiles();
for(int i=0;i<childs.length;i++){
System.out.println(childs[i]);
if(childs[i].isDirectory()){
tree(childs[i]);
}
}
}
}
import java.io.File;
import java.util.ArrayList;
import java.util.List;public class PrintFileTree {
public static void main(String args[])
{
List<Infor> list=new ArrayList<Infor>();
list=show("E:\\我的作品\\lianxi\\lianxi\\src\\file",0);
for(Infor inf:list)
{
for(int i=0;i<inf.jibie;i++)
System.out.print(" ");
System.out.print(inf.fileName);
System.out.println();
}
}
public static List<Infor> show(String file,int i)
{
List<Infor> list=new ArrayList<Infor>();
File myFile=new File(file);
if(myFile.isDirectory())
{
list.add(new Infor(myFile.getName(),i));
File[] fileCollection=myFile.listFiles();
for(File f:fileCollection)
{
list.addAll(show(f.getAbsolutePath(),i+1));
}
}
else
{
list.add(new Infor(myFile.getName(),i));
}
return list;
}}
class Infor{
String fileName;
int jibie;
public Infor(String fileName,int i)
{
this.fileName=fileName;
jibie=i;
}
}