Java 教学例子 目录树 (初级)

原创 2003年08月29日 07:32:00
/** *//**
  * 作者: 杨帆
  * mail: yifi@tom.com
  * licence: GPL 修改或转发请保留原始作者信息
 
*/



import java.io.*;
import java.util.*;

public class MyTree ...{

    
public static void main(String[] args) ...{
        MadeTree mt 
= new MadeTree();
        
try ...{
            File file 
= new File(args[0]);


            
if (file.isDirectory() == false...{
                
throw new Exception("不是目录!");
            }


            mt.made(file, 
0new LinkedList());

        }
 catch (Exception e) ...{
            System.out.println(
"用法: java MyTree 目录名");
            e.printStackTrace();
        }


    }


}



class MadeTree ...{

    
public static String signTreeBranch = "├─";
    
public static String signTreeLastBranch = "└─";
    
public static String signTreeThroughBranch = "│  ";
    
public static String signTreeNoneBranch = "    ";

    
public static boolean isPrintFile = true;//true:显示文件  false:不显示文件


    
public void made(File file, int num, LinkedList link) ...{
        
        File[] fileArray;
        
        
if(MadeTree.isPrintFile == true)...{
            fileArray 
= file.listFiles();
        }
else...{
            fileArray 
= file.listFiles(new MyFileFilter());
        }

        

        Iterator it 
= link.iterator();
        
while (it.hasNext()) ...{
            System.out.print(it.next());
        }


        
if (fileArray == null...{
            
//说明传进来的是空目录或文件
            System.out.println(file.getName());

        }
 else ...{
            
//说明传进来的是有内容的目录
            System.out.println("[" + file.getName() + "]");

            
//处理下一级目录

            
if (link != null && link.size() > 0...{
                
//如果父节点是分支则用signTreeThroughBranch代替
                if (link.getLast().equals(MadeTree.signTreeBranch)) ...{
                    link.removeLast();
                    link.addLast(MadeTree.signTreeThroughBranch);
                }

                
//如果父节点是末支则用signTreeNoneBranch代替
                if (link.getLast().equals(MadeTree.signTreeLastBranch)) ...{
                    link.removeLast();
                    link.addLast(MadeTree.signTreeNoneBranch);
                }

            }


            link.addLast(MadeTree.signTreeBranch);
            
for (int i = 0; i < fileArray.length; i++...{

                
if (i != fileArray.length - 1...{
                    
//处理成分支

                }
 else ...{
                    
//处理成末支
                    link.removeLast();
                    link.addLast(MadeTree.signTreeLastBranch);
                }


                
//此处要特别注意link是要clone的,要不就共享一个了
                made(fileArray[i], num + 1, (LinkedList) link.clone());
            }


        }


    }


}


/** *//**
 * 文件过滤器,过滤掉不是目录的文件
 
*/

class MyFileFilter implements FileFilter ...{
    
public boolean accept(File pathname) ...{
        
if (pathname.isDirectory()) ...{
            
return true;
        }
 else ...{
            
return false;
        }

    }

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

java基础教程:集合概述(27)

本节课是集合的概述。。。快上车!!!
  • dreamsigel
  • dreamsigel
  • 2017年07月15日 11:06
  • 290

Java的目录树的创建与展示

最近,在研究java的目录树的生成,想
  • binbin001133
  • binbin001133
  • 2014年09月15日 21:53
  • 6169

Volley简单例子

写了个volley使用的例子,记录一下。
  • lang523493505
  • lang523493505
  • 2016年07月18日 19:00
  • 193

java中关于目录树的简单实现

// 编写程序,显示指定目录下的所有文件目录及所有子目录。 // 用递归实现 // 程序运行可以输入自定义的目录、默认目录为:当前文件所在的目录 // 自定义的输入结构为:java FileDemo2...
  • oucxc
  • oucxc
  • 2016年05月08日 22:02
  • 418

深入JAVA之 java 生成目录树工具类 v1

目录树生成工具  {@linkplain #setDeep(int) 设置查询目录深度}  {@linkplain #setFileFilter(FileFilter)}  设置查询文件筛选过滤器} ...
  • u011278496
  • u011278496
  • 2016年10月21日 10:12
  • 1538

java 输出给定路径下的所有文件(目录树)

给路径如E盘下的test文件夹,遍历出test下的所有文件并输出。 test文件夹下有这些文件 E:\\test java代码如下:      package test; i...
  • jenyzhang
  • jenyzhang
  • 2015年04月06日 14:59
  • 2196

java 实现系统目录树 ,树控件使用,显示 系统文件夹

java 实现系统目录树结构,显示文件夹下的文件。树结构
  • u014112584
  • u014112584
  • 2014年05月13日 23:43
  • 1961

Java初级工程师面试题精选1

1.Java中的作用域public,private,protected,以及不写作用域(default)时有什么区别?   Java中有四种作用域,按照作用域范围由大到小排列一次是:public ,...
  • u012050416
  • u012050416
  • 2016年03月17日 12:16
  • 6138

winForm 编程 视频教学

http://www.youku.com/playlist_show/id_734091.html 共计十三讲
  • wyf1022
  • wyf1022
  • 2008年02月28日 19:52
  • 560

Java递归算法实现目录树的遍历

具体请看代码实现,挺简单的。 package com.bz.a; import java.io.File; /** * 递归算法实现目录树的遍历 */ public class Recursi...
  • qq_34489300
  • qq_34489300
  • 2017年01月03日 16:17
  • 639
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java 教学例子 目录树 (初级)
举报原因:
原因补充:

(最多只允许输入30个字)