4

ファイルパスに一致するファイルのリストを取得するには、ファイルパスのワイルドカードを展開する必要があります。
私はコモンズを使用しました-apacheのio:

protected File[] wildcardResolution(File f) {
    File dir = f.getParentFile();
    FileFilter fileFilter = new WildcardFileFilter(f.getName());
    return dir.listFiles(fileFilter);
}

問題は、それがワイルドカードのみ*または?ワイルドカードではなく展開することです。したがって、/ usr / **/*。 **xmlはと一致しませんall files with extension .xml, in any subfolder of /usr

**ワイルドカード拡張を正しく機能させるにはどうすればよいですか?

ありがとう

4

1 に答える 1

4

File.listFilesの問題は、再帰的にリストされないことです。

FileUtils.iterateFilesまたはlistFilesを使用できます。これは、ファイルに1つのパターンを使用し、ディレクトリに1つのパターンを使用します。これは、1つのグロブ式とまったく同じではありません。

Iterator iterateFiles = FileUtils.iterateFiles(
  new File("."), new WildcardFileFilter("*.xml"), TrueFileFilter.INSTANCE);
while(iterateFiles.hasNext()){
    System.out.println(iterateFiles.next());
}
于 2011-03-07T07:38:26.423 に答える