📜  java 读取目录 - Java (1)

📅  最后修改于: 2023-12-03 15:31:34.437000             🧑  作者: Mango

Java 读取目录

在Java中,我们可以使用File类来读取目录。

读取目录中的所有文件和子目录

要读取一个目录中的所有文件和子目录,可以使用File类的listFiles()方法。

File folder = new File("path/to/folder");
File[] files = folder.listFiles();

if(files != null){
    for(File file : files){
        if(file.isDirectory()){
            // 处理子目录
        }else{
            // 处理文件
        }
    }
}

如果目录为空或者路径指向一个文件而不是一个目录,则listFiles()方法会返回null。

递归读取目录中的所有文件和子目录

如果存在嵌套的子目录,我们可以使用递归来读取所有子目录中的文件及子目录。下面是递归方法的示例代码:

public static void readFolder(File folder){
    File[] files = folder.listFiles();

    if(files != null){
        for(File file : files){
            if(file.isDirectory()){
                // 递归处理子目录
                readFolder(file);
            }else{
                // 处理文件
            }
        }
    }
}
获取目录中的特定类型的文件

如果要仅获取目录中特定类型的文件,可以使用FilenameFilter类过滤文件。下面是示例代码:

File folder = new File("path/to/folder");
File[] files = folder.listFiles(new FilenameFilter() {
    @Override
    public boolean accept(File dir, String name) {
        return name.endsWith(".txt");
    }
});

if(files != null){
    for(File file : files){
        // 处理.txt文件
    }
}
总结

使用File类,我们可以读取目录中的所有文件和子目录,递归读取所有子目录中的文件及子目录,以及获取目录中的特定类型的文件。根据实际需求,我们可以选择不同的方法来读取目录。