大家好,我想问一下,如何用java实现对一个文件夹里面的文件进行列举,但是文件夹下面还有其他的文件夹,比如文件夹1里面有一些文件和文件夹2,文件夹2里面也有文件。 
如何一下子找出文件1里面包含的所有文件,最后连路经也列举出来。小弟在线等,谢谢

解决方案 »

  1.   

     给你一个java列出c:\window\system32下面文件的实现做参考。package test;import java.io.File;public class DocTree {

    public void drawDocTree(File root,int depth,int childrenSize){
    if (root.isFile()){
    drawFile(root,depth);
    }
    else {
    drawForder(root,depth);
    File[] files = root.listFiles() ;
    if (files!=null && files.length!=0){
    int size = files.length ;
    //print forder(s) first ,then file(s) ;
    for (int i=0 ;i<size ;i++){
    drawDocTree(files[i],depth+1,size);
    }
    }
    }
    }
    /**
     *draw forder
     *@param root: current forder ;
     *@param depth: current depth ; 
     */
    private void drawForder(File root, int depth) {
    for (int i=0 ;i<depth ;i++){
    System.out.print("|   ");
    }
    System.out.print("|---");
    System.out.print("["+root.getName()+"]");
    System.out.println();
    }
    /**
     * @param root
     * @param depth
     */
    private void drawFile(File root, int depth) {
    // TODO Auto-generated method stub
    for (int i=0 ;i<depth ;i++){
    System.out.print("|   ");
    }
    System.out.print("|---");
    System.out.print(root.getName());
    System.out.println();
    }

    public static void main(String[] args){ DocTree docTree = new DocTree();
    File file = new File("C:\\WINNT\\system32") ;
    docTree.drawDocTree(file, 0, 1) ;

    }
    }
      

  2.   

    顶,楼上
    思路是对你获取的路径下的文件进行判断是否是目录,若是再进入该路径,这样循环知道没有目录退出并打印路径即可
    你可以设置一个标志变量flag来判断循环是否结束。
    也可以用楼上朋友的方法·
      

  3.   

    就是判断是不是file,是的话打印出他的路径,不是的话如果是文件夹,包含文件用listFiles()列举出来,再打印全部路径