Jas*_*n S 8 java apache-commons
我试图找出如何使用apache commons io DirectoryWalker.理解如何子类化DirectoryWalker非常容易.但是,如何在特定目录上开始执行它?
rcl*_*rcl 11
只是为了扩展这个答案,因为我一开始很困惑如何使用这个类,当我环顾四周时谷歌出现了这个问题.这只是我如何使用它的一个例子(减去一些东西):
public class FindConfigFilesDirectoryWalker extends DirectoryWalker {
private static String rootFolder = "/xml_files";
private Logger log = Logger.getLogger(getClass());
private static IOFileFilter filter = FileFilterUtils.andFileFilter(FileFilterUtils.fileFileFilter(),
FileFilterUtils.suffixFileFilter("xml"));
public FeedFileDirectoryWalker() {
super(filter, -1);
}
@SuppressWarnings("unchecked")
@Override
protected void handleFile(final File file, final int depth, final Collection results) throws IOException {
log.debug("Found file: " + file.getAbsolutePath());
results.add(file);
}
public List<File> getFiles() {
List<File> files = new ArrayList<File>();
URL url = getClass().getResource(rootFolder);
if (url == null) {
log.warn("Unable to find root folder of configuration files!");
return files;
}
File directory = new File(url.getFile());
try {
walk(directory, files);
}
catch (IOException e) {
log.error("Problem finding configuration files!", e);
}
return files;
}
}
Run Code Online (Sandbox Code Playgroud)
然后你只需通过你创建的公共方法调用它,传入你可能想要的任何参数:
List<File> files = new FindConfigFilesDirectoryWalker().getFiles();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5726 次 |
| 最近记录: |