ホームページ  >  記事  >  Java  >  Java フォルダーをループしてすべてのファイル名を取得する方法

Java フォルダーをループしてすべてのファイル名を取得する方法

PHPz
PHPzオリジナル
2024-03-29 13:24:02948ブラウズ

Java フォルダーをループしてすべてのファイル名を取得する方法

Java は、強力なファイル処理機能を備えた人気のあるプログラミング言語です。 Java では、フォルダーを走査してすべてのファイル名を取得するのが一般的な操作であり、これは特定のディレクトリー内のファイルを迅速に見つけて処理するのに役立ちます。この記事では、Java でフォルダーを走査してすべてのファイル名を取得するメソッドを実装する方法と、具体的なコード例を紹介します。

1. 再帰的メソッドを使用してフォルダーを走査する

再帰的メソッドを使用してフォルダーを走査できます。再帰的メソッドはそれ自体を呼び出す方法であり、すべてのファイルを効果的に走査できます。フォルダー内のファイルとサブフォルダー。以下は単純な再帰メソッドの例です:

import java.io.File;

public class FileTraversal {
    
    public static void main(String[] args) {
        File folder = new File("路径"); // 需要遍历的文件夹路径
        
        traverseFiles(folder);
    }
    
    public static void traverseFiles(File folder) {
        if (folder.isDirectory()) {
            File[] files = folder.listFiles();
            if (files != null) {
                for (File file : files) {
                    if (file.isDirectory()) {
                        traverseFiles(file); // 递归遍历子文件夹
                    } else {
                        System.out.println(file.getName()); // 输出文件名
                    }
                }
            }
        }
    }
}

2. Java 8 の Stream API を使用したフォルダーの走査

Java 8 では、コレクションと配列の処理を簡素化する Stream API が導入されました。 Files.walk() メソッドと Stream API を組み合わせて、フォルダー内をウォークスルーしてすべてのファイル名を取得できます。 Stream API を使用した例を次に示します:

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.stream.Stream;

public class FileTraversal {
    
    public static void main(String[] args) throws IOException {
        Path folder = Paths.get("路径"); // 需要遍历的文件夹路径
        
        try (Stream<Path> paths = Files.walk(folder)) {
            paths
                .filter(Files::isRegularFile) // 过滤只获取文件
                .forEach(path -> System.out.println(path.getFileName())); // 输出文件名
        }
    }
}

3. Java 7 の Files.walkFileTree() メソッドを使用してフォルダーを移動します

Java 7 を使用している場合は、Files.walkFileTree( ) メソッドを使用してフォルダーを横断します。このメソッドは、FileVisitor インターフェイスを実装し、visitFile() メソッドをオーバーライドしてファイル情報を取得する必要があります。以下は、Files.walkFileTree() メソッドの使用例です。

import java.io.IOException;
import java.nio.file.FileVisitResult;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.SimpleFileVisitor;
import java.nio.file.attribute.BasicFileAttributes;

public class FileTraversal {
    
    public static void main(String[] args) throws IOException {
        Path folder = Paths.get("路径"); // 需要遍历的文件夹路径
        
        Files.walkFileTree(folder, new SimpleFileVisitor<Path>() {
            @Override
            public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
                System.out.println(file.getFileName()); // 输出文件名
                return FileVisitResult.CONTINUE;
            }
        });
    }
}

結論

上記の 3 つのメソッドを通じて、フォルダーを走査し、フォルダー内のすべてのファイル名を取得する機能を実装できます。ジャワ。この操作は、再帰的メソッド、Stream API、または Files.walkFileTree() メソッドのいずれを使用しても簡単に実現できます。実際のニーズと Java バージョンに応じて、フォルダー トラバーサルのさまざまな方法を選択します。 Java プログラミングについてさらに詳しく知りたい場合は、私たちのブログを参照してください。

以上がJava フォルダーをループしてすべてのファイル名を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。