2012-01-17 9 views
6

Qui ci sono tutte le cose che ho provato:Rubino filelist escludere una cartella

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 

versione rake è 0.9.2.2 e la versione di Ruby è 193. tutto non funziona. Come dovrei escludere una directory in una lista file?

risposta

6

sto supponendo che si sta cercando di ottenere un elenco di tutti i file sotto c:/tmp tranne che per niente (e compresa) la cartella c:/tmp/logs:

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

[Edit] vedere la documentazione per FileList#exclude per ulteriori dettagli. Ad esempio, per escludere più directory è possibile aggiungere più argomenti stringa/espressioni regolari, modificare l'espressione regolare in modo che corrisponda a tutti i modelli di directory da escludere o fare qualcosa di simile in un blocco.

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

Funziona alla perfezione, che dire escludendo più cartelle o file? – icn

+0

Dovresti essere in grado di escludere a catena – PinnyM

+0

@icn: vedere la mia risposta aggiornata. – maerics