Rumah >Java >javaTutorial >Bagaimana untuk Menyenaraikan Fail secara Rekursif dalam Java Menggunakan `Files.walk` dan `Files.find` Java 8?

Bagaimana untuk Menyenaraikan Fail secara Rekursif dalam Java Menggunakan `Files.walk` dan `Files.find` Java 8?

Susan Sarandon
Susan Sarandonasal
2025-01-03 06:44:39768semak imbas

How to Recursively List Files in Java Using Java 8's `Files.walk` and `Files.find`?

Cara Menyenaraikan Fail secara Rekursif di Java Menggunakan Java 8

Pengenalan

Penyenaraian fail rekursif ialah tugas biasa yang melibatkan merentasi direktori dan subdirektori untuk mendapatkan semula senarai semua fail dalam laluan yang ditentukan. Di Java, terdapat berbilang pendekatan untuk mencapai ini menggunakan perpustakaan terbina dalam dan pihak ketiga.

Java 8 (Menggunakan Files.walk)

Java 8 diperkenalkan cara yang berkuasa untuk memproses fail melalui kaedah Files.walk, yang menyediakan aliran objek Path yang mewakili semua fail dalam pepohon direktori. Untuk menyenaraikan semua fail biasa di bawah direktori, anda boleh menggunakan kod berikut:

try (Stream<Path> stream = Files.walk(Paths.get(path))) {
    stream.filter(Files::isRegularFile)
          .forEach(System.out::println);
}

Pendekatan ini menawarkan cara yang mudah dan mudah untuk melintasi pepohon fail dan melaksanakan operasi pada fail individu, seperti mencetak nama mereka atau melakukan pemprosesan tambahan.

Java 8 (Menggunakan Files.find)

Java 8 juga memperkenalkan kaedah Files.find, yang membolehkan anda mencari fail berdasarkan predikat penapis. Untuk penyenaraian fail rekursif, anda boleh menggunakan penapis untuk menyemak fail biasa:

Files.find(Paths.get(path),
           Integer.MAX_VALUE,
           (filePath, fileAttr) -> fileAttr.isRegularFile())
        .forEach(System.out::println);

Walaupun Files.find mungkin lebih cekap jika anda perlu menapis berdasarkan atribut fail, tiada prestasi yang ketara perbezaan antara Files.walk dan Files.cari apabila hanya menyenaraikan fail biasa.

Perbandingan dengan Lain Pendekatan

Pendekatan berasaskan aliran Java 8 menawarkan kelebihan ketara berbanding pelaksanaan rekursif atau godam tradisional. Ia menyediakan cara ringkas dan ekspresif untuk mengendalikan penyenaraian fail rekursif, menjadikannya lebih mudah untuk membaca, menyelenggara dan memanjangkan kod anda.

Atas ialah kandungan terperinci Bagaimana untuk Menyenaraikan Fail secara Rekursif dalam Java Menggunakan `Files.walk` dan `Files.find` Java 8?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn