我正在尝试让所有子目录执行此操作:
File repositoryDir = new File(_props.getProperty("files.repository.path"));
IOFileFilter filter = new IOFileFilter() {
public boolean accept(File file) {
//return file.isDirectory();
return true;
}
@Override
public boolean accept(File arg0_, String arg1_) {
// TODO Auto-generated method stub
return false;
}
};
FileUtils.listFiles(repositoryDir,filter,null);
不幸的是,返回的List是空的。
另一方面,如果我这样做,它可以工作:
File[] mainLevelFiles = repositoryDir.listFiles();
任何人都知道Apaches FileUtils.listFiles(...)有什么问题吗?
答案 0 :(得分:1)
问题是你有两个接受方法,一个返回true,一个返回false。删除带有额外字符串的字符串,使其如下所示:
IOFileFilter filter = new AbstractFileFilter() {
public boolean accept(File file) {
return file.isDirectory();
}
};
或者,您可以使用Apache的DirectoryFileFilter:
File dir = new File(_props.getProperty("files.repository.path"));
String[] files = dir.list( DirectoryFileFilter.INSTANCE );
for ( int i = 0; i < files.length; i++ ) {
System.out.println(files[i]);
}