Rumah >Java >javaTutorial >Bagaimana untuk Mencari Fail Dengan Cekap Menggunakan Corak Wildcard di Java?

Bagaimana untuk Mencari Fail Dengan Cekap Menggunakan Corak Wildcard di Java?

Barbara Streisand
Barbara Streisandasal
2024-12-04 10:50:10354semak imbas

How to Efficiently Find Files Using Wildcard Patterns in Java?

Mencari Fail dengan Rentetan Kad Liar dalam Java

Mencari fail yang sepadan dengan corak kad bebas tertentu ialah tugas biasa di Java. Untuk menangani keperluan ini, Apache commons-io menyediakan kelas FileUtils dengan kaedah seperti listFiles dan iterateFiles.

Andaikan anda mempunyai corak kad bebas seperti ini:

../Test?/sample*.txt

Untuk menyenaraikan fail yang sepadan menggunakan FileUtils :

File dir = new File(".");
FileFilter fileFilter = new WildcardFileFilter("sample*.java");
File[] files = dir.listFiles(fileFilter);

for (File file : files) {
    System.out.println(file);
}

Kod ini berulang pada fail dalam direktori semasa yang sepadan dengan kad bebas yang ditentukan. Walau bagaimanapun, untuk mengendalikan direktori bersarang (cth. folder TestX), anda boleh melelang melalui direktori terlebih dahulu:

File[] dirs = new File(".").listFiles(new WildcardFileFilter("Test*.java"));

for (File dir : dirs) {
    if (dir.isDirectory()) {
        File[] files = dir.listFiles(new WildcardFileFilter("sample*.java"));
    }
}

Walaupun penyelesaian ini berkesan, penyelesaian ini mungkin tidak secekap yang diingini. Pertimbangkan untuk menggunakan RegexFileFilter untuk kriteria pemadanan yang lebih fleksibel dan kompleks.

Atas ialah kandungan terperinci Bagaimana untuk Mencari Fail Dengan Cekap Menggunakan Corak Wildcard di Java?. 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