Tôi đang cố gắng tìm hiểu cách sử dụng dấu phẩy apache io DirectoryWalker. Thật dễ dàng để hiểu cách phân lớp DirectoryWalker. Nhưng làm thế nào để bạn bắt đầu thực hiện nó trên một thư mục cụ thể?bằng cách sử dụng DirectoryWalker
Trả lời
Dường như lớp con phải cung cấp phương thức công khai gọi là walk().
Chỉ cần mở rộng câu trả lời này vì tôi đã bối rối trước tiên về cách sử dụng lớp học và câu hỏi này xuất hiện trên google khi tôi đang tìm kiếm. Đây chỉ là một ví dụ về cách tôi đã sử dụng nó (trừ một số điều):
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;
}
}
Và sau đó bạn sẽ chỉ gọi nó bằng phương pháp nào mà bạn đã tạo, đi qua trong bất kỳ đối số mà bạn có thể muốn:
List<File> files = new FindConfigFilesDirectoryWalker().getFiles();
Lưu ý rằng getResource() yêu cầu thư mục tài nguyên nằm trong đường dẫn xây dựng. Nó được mô tả thêm ở đây: http://lj4newbies.blogspot.com/2008/03/using-classgetresource-load-resource.html – dbasch
Tất cả những gì tôi muốn là tập hợp các thư mục để lặp lại. Phân lớp này cung cấp những gì tôi cần:
public class UDirWalker extends DirectoryWalker {
public UDirWalker() {
super();
}
public ArrayList<File> getDirectories(File startDirectory) throws IOException {
ArrayList<File> dirs = new ArrayList<File>();
walk(startDirectory, dirs);
return dirs;
}
@Override
protected boolean handleDirectory(File directory, int depth,
Collection results) {
results.add(directory);
return true;
}
}
- 1. Cách đăng bằng cách sử dụng WebRequest?
- 2. Gọi điện thoại sms api bằng cách sử dụng phonegap bằng cách sử dụng javascript
- 3. Kiểm tra bằng Python - cách sử dụng assertRaises trong thử nghiệm bằng cách sử dụng unittest?
- 4. Sử dụng dịch vụ web bằng cách sử dụng Javascript
- 5. CHỌN INTO bằng cách sử dụng Oracle
- 6. Tạo SVG bằng cách sử dụng Python
- 7. Nhận Email bằng cách sử dụng PHP
- 8. printf bằng cách sử dụng ngăn xếp?
- 9. Caching DNS bằng cách sử dụng getaddrinfo
- 10. BackboneJS model.url bằng cách sử dụng collection.url
- 11. Crash firefox bằng cách sử dụng JavaScript
- 12. openssl s_client bằng cách sử dụng proxy
- 13. Đánh dấu bằng cách sử dụng jQuery
- 14. Đọc pdf bằng cách sử dụng iText
- 15. Cách sử dụng hibernate bằng() và hashCode()?
- 16. deserialize lazylist bằng cách sử dụng jackson
- 17. sudoku solver bằng cách sử dụng backtracking
- 18. Populating $ scope bằng cách sử dụng .getJSON()
- 19. đa luồng bằng cách sử dụng iframe
- 20. Sử dụng đúng cách thoát() bằng C++?
- 21. Tạo IFRAME bằng cách sử dụng JavaScript
- 22. đặt maxlength bằng cách sử dụng javascript
- 23. angularjs tab bootstrap bằng cách sử dụng
- 24. Gửi email bằng cách sử dụng phonegap
- 25. texturing bằng cách sử dụng texelFetch()
- 26. Tạo mã bằng cách sử dụng .net
- 27. tạo api bằng cách sử dụng php
- 28. Thư PHP bằng cách sử dụng Gmail
- 29. Nút ẩn bằng cách sử dụng jquery
- 30. Chuyển hướng bằng cách sử dụng jQuery
argh !!! tất nhiên, làm thế nào @ # $ @ # $ @ # tôi đã bỏ lỡ nhìn thấy điều đó? –
bạn không ghét nó khi điều đó xảy ra>. < – Nippysaurus
thực sự có vẻ như bạn không phải cung cấp phương thức gọi đi bộ. một lớp khác có thể gọi walk() từ bên ngoài. –