您的位置:首页 > 其它

列出指定目录下的所有文件,并且有层次关系在控制台显示

2013-07-09 11:11 501 查看
import java.io.File; 

import java.util.ArrayList; 

import java.util.List; 

 

public class TestIO7 { 

 

    //用于判断目录或文件所处的层次  

    private static int time; 

    private  static void listAllFiles(File f){ 

        //File[] fs =  f.listFiles();  

         

        if(f.isFile()||f.list().length==0){ 

            return ; 

        } 

        else{ 

            File[] fs = f.listFiles(); 

            File[] fs2 = sort(fs); 

            for(File f2:fs2){ 

                StringBuffer sb = new StringBuffer(); 

                if(f2.isFile()){ 

                    sb.append(getTabs(time)); 

                    sb.append(f2.getName()); 

                } 

                else{ 

                    sb.append(getTabs(time)); 

                    sb.append(f2.getName()); 

                    sb.append("\\"); 

                } 

                System.out.println(sb.toString()); 

                if(f2.isDirectory()) 

                { 

                    time++; 

                     

                    listAllFiles(f2); 

                     

                    time--; 

                } 

            } 

        } 

    } 

    private static File[] sort(File[] f){ 

        List<File> list = new ArrayList<File>(); 

        for(File ff : f){ 

            if(ff.isDirectory()){ 

                list.add(ff); 

            } 

        } 

        for(File ff:f){ 

            if(ff.isFile()){ 

                list.add(ff); 

            } 

        } 

        return list.toArray(new File[f.length]); 

    } 

     

    private static String getTabs(int time){ 

        StringBuffer sb = new StringBuffer(); 

        for(int i=0;i<time;i++){ 

            sb.append("\t"); 

        } 

        return sb.toString(); 

    } 

    public static void main(String[] args) { 

        //TestIO7 test = new TestIO7();  

        listAllFiles(new File("c:/wds")); 

    } 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: