日期:2014-05-20  浏览次数:20790 次

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

------解决方案--------------------
Java code

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());
            }
        }
        
    }
}

------解决方案--------------------
第一个是递归的,第二个是非递归的。
Java code

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.aspx