指定されたワイルドカード パターンを持つファイルの検索
ファイルとディレクトリの管理を行う場合、一般的に、次のようなファイルを取得する必要があるシナリオに遭遇します。特定のワイルドカード パターンに準拠します。 Java では、このタスクを達成するためのアプローチがいくつかあります。
よく使われる方法の 1 つは、Apache Commons IO の WildcardFileFilter クラスを利用することです。このフィルタを使用すると、ワイルドカード パターンを指定できます。その使用法を説明するために、次のコード例を考えてみましょう。
File dir = new File("."); FileFilter fileFilter = new WildcardFileFilter("sample*.txt"); File[] files = dir.listFiles(fileFilter); for (File file : files) { System.out.println(file.getName()); }
この例では、 dir 変数はファイルを検索するディレクトリを表します。 fileFilter オブジェクトは、ワイルドカード パターン「sample*.txt」で構成されます。その結果、このコードは、「sample」で始まり .txt で終わる名前を持つ dir ディレクトリ内のすべてのファイルをリストします。
ワイルドカード パターンにディレクトリ名 (". ./Test?/sample*.txt") を使用すると、WildcardFileFilter とループを組み合わせてサブディレクトリを反復処理し、各レベルでフィルターを適用できます。次のコードは、これを実現する方法を示しています。
File dir = new File("."); FileFilter fileFilter = new WildcardFileFilter("sample*.txt"); File[] dirs = dir.listFiles(new WildcardFileFilter("Test*.java")); for (File subdir : dirs) { if (subdir.isDirectory()) { File[] subdirFiles = subdir.listFiles(fileFilter); // Do something with subdirFiles } }
この例では、コードは、パターン「Test*.java」に一致する dir ディレクトリ内のすべてのサブディレクトリを反復処理します。各サブディレクトリに対して、listFiles メソッドが fileFilter とともに再度使用され、パターン「sample*.txt」に一致するファイルを取得します。
このアプローチを採用すると、ファイル名とディレクトリの両方を含む複雑なワイルドカード パターンを処理できるようになります。名前。 Java の特定のワイルドカード基準を満たすファイルを取得するための包括的なソリューションを提供します。
以上がJava で特定のワイルドカード パターンに一致するファイルを見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。