如何用递归的方法打印出:在D盘下的一个文件中所有的目录.比如在D盘下有一个文件bak,如何打印出里面的文件的文件,直到最后一个文件.

解决方案 »

  1.   


    import java.io.*;
    public class Demo01
    {
    public static void main(String... args) {
    //D:\document\java\JAVASE
    File f = new File("D:"+File.separator+"document"+
    File.separator+"java"+File.separator+"JAVASE");
    fun(f);
    } public static void fun(File name) {
    File[] farr = name.listFiles();
    for(int i = 0; i < farr.length;i++) {
    if(farr[i].isDirectory()) {
    System.out.println(farr[i].getName()+"目录下:");
    fun(farr[i]);
    System.out.println("");

    } else {
    System.out.println(farr[i].getName());
    }
    }

    }
    }
      

  2.   

    第一个是递归的,第二个是非递归的。import java.io.*; 
    import java.util.*; public class ListFileRecursion{ 
         
        public static void listFile(String filePath){ 
            File file = new File(filePath); 
             
            if(file.exists()){ 
                if(file.isDirectory()){ 
                    System.out.print("Folder: "+ file.toString()); 
                     
                    File[] fileArray = file.listFiles(); 
                     
                    System.out.println(" includes "+ fileArray.length +" files/folders directly."); 
                     
                    for(File subFile : fileArray){ 
                        listFile(subFile.toString()); 
                    } 
                } 
                else{ 
                    System.out.println(file.toString()); 
                } 
            } 
            else{ 
                System.err.print("The file/folder doesn't exist!"); 
            } 
        } 
         
        public static void main(String args[]){ 
            listFile("C:\\VM_Image"); 
        } 
    }本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/justinavril/archive/2008/09/20/2955991.aspximport java.io.*; 
    import java.util.*; public class ListFileCommon { 
        public static void listFiles(String filePath){ 
            LinkedList<File> list = new LinkedList<File>(); 
            File file = new File(filePath); 
             
            if (file.exists()){ 
                if(file.isDirectory()){ 
                    File[] fileArray = file.listFiles(); 
                     
                    System.out.println("Folder: "+ file.toString()); 
                     
                    for(int i=0; i<fileArray.length; i++){ 
                        if (fileArray[i].isDirectory()) 
                            list.add(fileArray[i]); 
                        else 
                            System.out.println(fileArray[i].toString()); 
                    } 
                    while(! list.isEmpty()){ 
                        File fileInList = list.removeFirst(); 
                         
                        if(fileInList.isDirectory()){ 
                            //System.out.println(fileInList.toString()); 
                             
                            fileArray = fileInList.listFiles(); 
                             
                            if(fileArray == null) 
                                return; 
                             
                            for(int i=0; i<fileArray.length; i++){ 
                                if(fileArray[i].isDirectory()) 
                                    list.add(fileArray[i]); 
                                else 
                                    System.out.println(fileArray[i].toString()); 
                            } 
                        } 
                    } 
                } 
                else 
                    System.out.println(file.toString()); 
            } 
            else 
                System.err.println("The File/Folder doesn't exist!");            
        } 
        public static void main(String args[]){ 
            listFiles("C:\\VM_Image"); 
        } 
    }本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/justinavril/archive/2008/09/20/2955991.aspx
      

  3.   

    public class printDirectory {
    public void print(String s) {
    File a = new File(s);
    System.out.println(a);
    if (a.isDirectory() && a.list().length != 0) {
    for (String fileName : a.list()) {
    String b = s + "/" + fileName;
    print(b);
    }
    }
    }
    }