ホームページ >Java >&#&チュートリアル >Java でファイルを検索するときにワイルドカード文字列を照合するにはどうすればよいですか?

Java でファイルを検索するときにワイルドカード文字列を照合するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-03 10:09:11285ブラウズ

How to Match Wildcard Strings When Locating Files in Java?

Java でワイルドカード文字列に一致するファイルを見つける方法

Java では、特定のワイルドカード パターンに準拠するファイルを見つけるのが一般的なタスクです。 「../Test?/sample*.txt」のようなワイルドカード文字列を指定した場合、このパターンに一致する対応するファイルを識別することが重要です。

この課題に取り組むための広く受け入れられている方法の 1 つは、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」に一致する現在のディレクトリ内のファイル(「sample22b.java」などのファイルを含む) "sample-spiffy.java".

ただし、より複雑なパスをワイルドカード文字やサブディレクトリと照合する必要がある場合は、より明示的なアプローチが必要です。 1 つのオプションは、サブディレクトリのリストを繰り返し処理し、ワイルドカード フィルターを各サブディレクトリに個別に適用することです。

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。