2012-01-17 39 views
6

Dưới đây là tất cả những điều tôi đã cố gắng:của Ruby filelist loại trừ một thư mục

files = FileList.new("c:/temp/**/*") do |file| 
    file.exclude("c:/temp/logs/") 
    end 


files = FileList.new("c:/temp/**/*") do |file| 
    file.exclude("c:/temp/logs") 
end 

    files = FileList.new("c:/temp/**/*") do |file| 
    file.exclude("c:/temp/logs/*.*") 
    end 


    files = FileList.new("c:/temp/**/*") do |file| 
    file.exclude("c:/temp/logs/**/*") 
    end 


    files = FileList.new("c:/temp/**/*") do |file| 
    file.exclude("c:/temp/**/logs/") 
    end 

phiên bản cào là 0.9.2.2 và Ruby phiên bản là 193. tất cả không hoạt động. Làm thế nào tôi nên loại trừ một thư mục trong một filelist?

Trả lời

6

tôi giả sử bạn đang cố gắng để có được một danh sách của tất cả các file dưới c:/tmp trừ bất cứ điều gì trong (và bao gồm) các c:/tmp/logs thư mục:

files = FileList.new("c:/temp/**/*").exclude(/c:\/temp\/logs/) 

[Chỉnh sửa] Xem tài liệu cho FileList#exclude để biết thêm chi tiết. Ví dụ: để loại trừ nhiều thư mục, bạn có thể thêm nhiều đối số chuỗi/regex, sửa đổi cụm từ thông dụng để khớp với tất cả các mẫu thư mục bị loại trừ hoặc thực hiện tương tự trong một khối.

x1 = /c:\/temp\/logs/ # The entire "c:/temp/logs" folder. 
x2 = /\.zip$/i # Any file whose name ends with ".zip". 
FileList.new("c:/temp/**/*").exclude(x1, x2) 
+0

Tính năng này rất hay, loại trừ nhiều thư mục hoặc tệp là gì? – icn

+0

Bạn có thể chuỗi không bao gồm – PinnyM

+0

@icn: xem câu trả lời cập nhật của tôi. – maerics

Các vấn đề liên quan