java打印出每个文件夹里的所有文件名

时间:2025-02-11 09:33:37

在 Java 中,若要打印出每个文件夹里的所有文件名,可以使用递归方法来遍历文件夹及其子文件夹。下面将分别介绍使用传统的 java.io 包和 Java 7 引入的 java.nio.file 包来实现该功能。

使用 java.io 包实现

import java.io.File;

public class PrintFilesInDirectory {

    public static void main(String[] args) {
        // 指定要遍历的文件夹路径
        String directoryPath = "your_directory_path";
        File directory = new File(directoryPath);

        if (directory.exists() && directory.isDirectory()) {
            printFiles(directory);
        } else {
            System.out.println("指定的路径不是一个有效的文件夹。");
        }
    }

    public static void printFiles(File directory) {
        // 获取该文件夹下的所有文件和文件夹
        File[] files = directory.listFiles();
        if (files != null) {
            for (File file : files) {
                if (file.isDirectory()) {
                    // 如果是文件夹,则递归调用 printFiles 方法继续遍历
                    printFiles(file);
                } else {
                    // 如果是文件,则打印文件名
                    System.out.println(file.getAbsolutePath());
                }
            }
        }
    }
}
代码解释

  1. main 方法:首先指定要遍历的文件夹路径,创建 File 对象,检查该路径是否为有效的文件夹。若有效,则调用 printFiles 方法开始遍历。
  2. printFiles 方法:使用 listFiles 方法获取指定文件夹下的所有文件和文件夹。对于每个子项,判断其是否为文件夹,若是则递归调用 printFiles 方法;若为文件,则打印其绝对路径。

使用 java.nio.file 包实现

import java.io.IOException;
import java.nio.file.*;
import java.nio.file.attribute.BasicFileAttributes;

public class PrintFilesUsingNio {

    public static void main(String[] args) {
        // 指定要遍历的文件夹路径
        Path directory = Paths.get("your_directory_path");

        try {
            Files.walkFileTree(directory, new SimpleFileVisitor<Path>() {
                @Override
                public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
                    // 打印文件的绝对路径
                    System.out.println(file.toAbsolutePath());
                    return FileVisitResult.CONTINUE;
                }
            });
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
代码解释

  1. main 方法:指定要遍历的文件夹路径,创建 Path 对象。使用 Files.walkFileTree 方法遍历文件夹树。
  2. SimpleFileVisitor 类:重写 visitFile 方法,当访问到文件时,打印其绝对路径,并返回 FileVisitResult.CONTINUE 表示继续遍历。

注意事项

  • 将 "your_directory_path" 替换为你实际要遍历的文件夹路径。
  • 在使用 java.io 包时,listFiles 方法可能返回 null,需要进行空值检查。
  • 在使用 java.nio.file 包时,需要处理可能抛出的 IOException