Ruby filelist исключает папку - PullRequest
       4

Ruby filelist исключает папку

7 голосов
/ 17 января 2012

Вот все, что я пробовал:

  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

версия рейка - 0.9.2.2, а версия Ruby - 193. все не работает. Как мне исключить каталог из списка файлов?

1 Ответ

7 голосов
/ 17 января 2012

Я предполагаю, что вы пытаетесь получить список всех файлов в c:/tmp, кроме всего, что находится в (* включая) папке c:/tmp/logs:

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

[Редактировать] Подробнее см. Документацию для FileList#exclude. Например, чтобы исключить несколько каталогов, вы можете либо добавить несколько аргументов строки / регулярного выражения, либо изменить регулярное выражение, чтобы оно соответствовало всем шаблонам каталогов, которые нужно исключить, либо сделать что-то подобное в блоке.

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)
...