如何用递归的方法打印出:在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