Tôi đang cố gắng đệ quy liệt kê tất cả các tệp phù hợp với một loại tệp cụ thể trong Groovy. This example gần như vậy. Tuy nhiên, nó không liệt kê các tập tin trong thư mục gốc. Có cách nào để sửa đổi này để liệt kê các tập tin trong thư mục gốc? Hoặc, có cách nào khác để làm điều đó không?Danh sách đệ quy của tất cả các tệp phù hợp với một loại tệp nhất định trong Groovy
29
A
Trả lời
69
này nên giải quyết vấn đề của bạn:
import static groovy.io.FileType.FILES
new File('.').eachFileRecurse(FILES) {
if(it.name.endsWith('.groovy')) {
println it
}
}
eachFileRecurse
mất một Kiểu Tệp enum mà xác định rằng bạn chỉ quan tâm trong các tập tin. Phần còn lại của vấn đề được giải quyết dễ dàng bằng cách lọc tên của tập tin. Có thể đáng nói đến là eachFileRecurse
thường đệ quy trên cả hai tệp và thư mục trong khi eachDirRecurse
chỉ tìm thấy thư mục.
3
thay thế eachDirRecurse
bởi eachFileRecurse
và nó sẽ hoạt động.
3
// Define closure
def result
findTxtFileClos = {
it.eachDir(findTxtFileClos);
it.eachFileMatch(~/.*.txt/) {file ->
result += "${file.absolutePath}\n"
}
}
// Apply closure
findTxtFileClos(new File("."))
println result
7
groovy phiên bản 2.4.7:
new File(pathToFolder).traverse(type: groovy.io.FileType.FILES) { it ->
println it
}
bạn cũng có thể thêm bộ lọc như
new File(parentPath).traverse(type: groovy.io.FileType.FILES, nameFilter: ~/patternRegex/) { it ->
println it
}
Các vấn đề liên quan
- 1. Regex phù hợp với tất cả các từ ngoại trừ một danh sách nhất định
- 2. Nhận danh sách đệ quy của các tệp svn: ignore'd
- 3. danh sách tệp đệ quy trong Ruby
- 4. Được cung cấp một UTI (Mã định danh loại đồng nhất), tìm tất cả các loại phù hợp với
- 5. Tìm kiếm tất cả các tệp phù hợp với một mẫu nhất định
- 6. Lấy danh sách tất cả các tệp trong thư mục (đệ quy)
- 7. Đệ quy in tất cả các tệp từ Vim
- 8. Dòng lệnh để xóa các tệp và thư mục phù hợp đệ quy
- 9. Đệ quy di chuyển tất cả các tệp của một loại cụ thể vào thư mục đích trong Bash
- 10. windows .bat tập tin cách đệ quy liệt kê tất cả các tệp thuộc loại * .mp3
- 11. Trong .Net, cách nhanh nhất để đệ quy tìm tất cả các tệp từ thư mục gốc là gì?
- 12. Điều gì mở rộng cho tất cả các tệp trong thư mục hiện tại đệ quy?
- 13. Danh sách tất cả các tệp đang mở
- 14. Hợp nhất tất cả các tệp trong một thư mục thành một tệp bằng bash
- 15. Danh sách tất cả các từ phù hợp với cụm từ thông dụng
- 16. LINQ Chọn tất cả các mục phù hợp với mảng
- 17. hgignore: giúp bỏ qua tất cả các tệp nhưng một số tệp nhất định
- 18. Chọn hàng phù hợp tất cả các mục trong một danh sách
- 19. Liệt kê tất cả các tệp từ tất cả thư mục trong một danh sách duy nhất
- 20. Tìm kiếm một thư mục và tất cả các thư mục con của nó đối với các tệp thuộc một loại nhất định
- 21. đệ quy thêm phần mở rộng tệp cho tất cả các tệp
- 22. GIT: Tôi muốn unstage tất cả các file phù hợp với một khuôn mẫu nhất định
- 23. Cách tạo một hàm đệ quy để sao chép tất cả các tệp và thư mục
- 24. Làm thế nào để tar một số loại tệp nhất định trong tất cả các thư mục con?
- 25. LINQ tìm tất cả với loại nhất định
- 26. Groovy hợp nhất hai danh sách?
- 27. git: Làm cách nào để đệ quy thêm tất cả các tệp trong thư mục con phù hợp với mẫu hình cầu?
- 28. Đếm tất cả các phần tử trong danh sách danh sách lồng nhau tùy ý mà không đệ quy
- 29. Thẻ cturs đệ quy chỉ cho một loại tệp
- 30. .gitignore bỏ qua tất cả các tệp sau đó đệ quy cho phép * .foo
đoạn bạn sẽ tìm thấy cùng một tập tin nhiều lần. Để làm cho nó hoạt động, bạn sẽ phải sử dụng eachDirRecurse thay thế và cho mỗi dir sử dụng dir.eachFileMatch để tìm các tệp trong thư mục. Kiểm tra giải pháp của tôi cho một cách khác để giải quyết vấn đề. – xlson
cách tiếp cận mới ... –