如何遍历给定文件目录下的所有文件,以及该目录下的所有子目录的文件

废话不多说,上代码

import java.io.File;

/**
 * 显示指定文件夹内容
 * @author 16003
 *
 */
public class TestFile {
    public static void main(String[] args) {
        //遍历该目录下的所有文件
        file("C:\\Users\\16003\\eclipse-workspace");
        //遍历该目录下的所有文件以及子目录的文件
        allfile(new File("C:\\Users\\16003\\eclipse-workspace"));
    }
    
    //遍历目录
    //file返回的是一个String数组
    public static void file(String dirname) {
        File file = new File(dirname);
        
        String[] str = file.list();
        for(String s:str) {
            System.out.println(s);
        }
    }
    
    //遍历目录以及子目录
    //listFiles返回的是完整的文件路径名,遍历目录以及子目录时必须用它
    public static void allfile(File file) {
        File[] files = file.listFiles();
        
        if(files!=null && files.length>0) {
            for(File temp:files) {
                //如果文件是一个目录时则递归
                if(temp.isDirectory()) {
                    allfile(temp);
                }else {
                    System.out.println(temp);
                }
            }
        }
    }
    
}

两个API:listlistFiles
list:帮助文档解释:返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。 意思就是说返回的是一个字符串数组,包含的是给定路径下的文件(有后缀名)和目录
listFiles:前者返回的是一个字符串数组,这个返回的是一个File对象数组,通常遍历树状目录下所有文件用这个API

最后修改:2021 年 11 月 15 日
如果觉得我的文章对你有用,请随意赞赏