Java递归输出指定路径下所有文件及文件夹
package a.ab; import java.io.File; import java.io.IOException; public class AE { public static void main(String[] args) { File f=new File("D:\\DD"); new AE().fileList(f); } public void fileList(File fl){ try{ File[] fs=fl.listFiles(); for(File file:fs){ if(file.isDirectory()){ System.out.println(file.getName()); fileList(file); }else{ System.out.println(file.getName()); } } }catch(Exception e){ e.printStackTrace(); } } }
listFiles
public File[] listFiles()
- 返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
如果此抽象路径名不表示一个目录,那么此方法将返回
null
。否则返回一个File
对象数组,每个数组元素对应目录中的每个文件或目录。表示目录本身及其父目录的名称不包括在结果中。得到的每个抽象路径名都是根据此抽象路径名,使用
构造方法构造的。所以,如果此路径名是绝对路径名,那么得到的每个路径名都是绝对路径名;如果此路径名是相对路径名,那么得到的每个路径名都是相对于同一目录的路径名。File(File, String)
不保证所得数组中的相同字符串将以特定顺序出现,特别是不保证它们按字母顺序出现。
- 返回:
- 抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件和目录。如果目录为空,那么数组也将为空。如果抽象路径名不表示一个目录,或者发生 I/O 错误,则返回
null
。 - 抛出:
SecurityException
- 如果存在安全管理器,且其
方法拒绝对目录进行读访问SecurityManager.checkRead(java.lang.String)
采用递归输出文件及文件夹,首先将指定目录下文件全部遍历出来放到 File[]数组中,然后递归调用输出这个数组的所有元素。