1

キーワードに一致するファイルまたはフォルダの検索を実装したいのですが、次のコードを使用していますが、返されるフォルダが文字列と一致しません。すべてのディレクトリが返されます。何か問題がありますか?

import java.io.File;
import java.io.IOException;
import java.util.List;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.filefilter.IOFileFilter;
import org.apache.commons.io.filefilter.TrueFileFilter;

public class SearchFiles {

public static void main(String args[]){
File directory=new File("C:/Users");
String keyword="Logs";
IOFileFilter fileFilter = new IOFileFilter() {
public boolean accept(File directory, String fileName) {
    return directory.isDirectory()&&fileName.contains(keyword);
}

@Override
public boolean accept(File arg0) {
if(arg0.getName().contains(keyword)){return true;}
else{
    return false;
}

}
};
List<File> files = (List<File>)FileUtils.listFilesAndDirs(directory, fileFilter, TrueFileFilter.INSTANCE);
for (File file : files) {
    try {
        System.out.println("file: " + file.getCanonicalPath());
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

}}

4

1 に答える 1

1

のjavadocによるとFileUtils.listFilesAndDirs、結果のコレクションにはサブディレクトリ自体の名前も含まれます。これが、結果にディレクトリの名前が表示される理由です。

于 2013-02-03T04:52:04.203 に答える