Cara Mencari Fail yang Memadankan Rentetan Kad Liar dalam Java
Di Java, mencari fail yang mematuhi corak kad bebas tertentu adalah tugas biasa. Apabila diberikan rentetan kad bebas seperti "../Test?/sample*.txt", adalah penting untuk mengenal pasti fail sepadan yang sepadan dengan corak ini.
Satu kaedah yang diterima secara meluas untuk menangani cabaran ini ialah dengan memanfaatkan WildcardFileFilter kelas daripada perpustakaan Apache Commons IO. Penapis ini membolehkan anda menentukan ungkapan kad bebas yang mentakrifkan kriteria carian fail.
Untuk menggambarkan penggunaannya, mari lihat contoh:
import org.apache.commons.io.FileUtils; File dir = new File("."); FileFilter fileFilter = new WildcardFileFilter("sample*.java"); File[] files = dir.listFiles(fileFilter); for (File file : files) { System.out.println(file); }
Dalam senario ini, penapis akan menemui semua fail dalam direktori semasa yang sepadan dengan corak "sample*.java", termasuk fail seperti "sample22b.java" dan "sample-spiffy.java".
Walau bagaimanapun, jika anda perlu memadankan laluan yang lebih kompleks dengan aksara kad bebas dan subdirektori, pendekatan yang lebih jelas diperlukan. Satu pilihan adalah untuk mengulangi senarai subdirektori dan menggunakan penapis kad bebas pada setiap subdirektori secara berasingan:
FileFilter dirFilter = new WildcardFileFilter("Test*"); File[] directories = dir.listFiles(dirFilter); for (int i = 0; i < directories.length; i++) { File dir = directories[i]; if (dir.isDirectory()) { FileFilter fileFilter = new WildcardFileFilter("sample*.java"); File[] files = dir.listFiles(fileFilter); } }
Pendekatan ini memastikan bahawa fail yang terletak dalam subdirektori yang sepadan dengan corak "Ujian*" juga dipertimbangkan dalam carian hasil.
Atas ialah kandungan terperinci Bagaimana Memadankan Rentetan Wildcard Apabila Mencari Fail di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!