Java递归输出指定路径下所有文件及文件夹

时间:2023-12-10 14:22:38
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[]数组中,然后递归调用输出这个数组的所有元素。