如何在Java 中尋找與通配符字串相符的檔案
在Java 中,尋找符合特定通配符模式的檔案是一項常見任務。當給出像「../Test?/sample*.txt」這樣的通配符字串時,識別與此模式相符的對應檔案至關重要。
解決這項挑戰的一種廣泛接受的方法是利用 WildcardFileFilter來自 Apache Commons IO 庫的類別。此篩選器可讓您指定定義檔案搜尋條件的通配符表達式。
為了說明其用法,讓我們看一個示例:
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); }
在此場景中,過濾器將查找所有當前目錄中與模式“sample*.java”匹配的文件,包括“s ample22b.java」和"sample-spiffy.java".
但是,如果您需要將更複雜的路徑與通配符和子目錄匹配,則需要更明確的方法。一種選擇是迭代子目錄列表,並將通配符過濾器分別應用於每個子目錄:
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); } }
此方法可確保搜尋中也會考慮位於與「Test*」模式相符的子目錄中的文件結果。
以上是Java定位檔案時如何符合通配符字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!