ホームページ >Java >&#&チュートリアル >Java でワイルドカード パターンに一致するファイルを効率的に見つけるにはどうすればよいですか?
Java でのワイルドカード パターンを含むファイルの検索
Java では、特定のワイルドカード パターンに一致するファイルを識別するのは困難な場合があります。この課題に取り組むには、次のアプローチを検討してください。
org.apache.commons.io.filefilter.WildcardFileFilter を使用する
FileFilter インスタンスを作成するを使用してWildcardFileFilter:
FileFilter fileFilter = new WildcardFileFilter("sample*.txt");
一致するファイルをリストするディレクトリにフィルターを適用します:
File dir = new File("."); File[] files = dir.listFiles(fileFilter);
相対パスの処理
相対パスを考慮するためディレクトリ:
サブディレクトリを反復処理:
FileFilter dirFilter = new WildcardFileFilter("Test*"); File[] subdirs = new File(".").listFiles(dirFilter); for (File subdir : subdirs) { if (subdir.isDirectory()) { File[] files = subdir.listFiles(fileFilter); } }
を使用再帰:
File current = ...; // start at any directory File[] files = new ArrayList<>(); processFiles(files, current, fileFilter); private void processFiles(List<File> files, File dir, FileFilter filter) { File[] subdirs = dir.listFiles(dirFilter); for (File subdir : subdirs) { if (subdir.isDirectory()) { processFiles(files, subdir, filter); } else if (filter.accept(subdir)) { files.add(subdir); } } }
代替アプローチ
以上がJava でワイルドカード パターンに一致するファイルを効率的に見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。