Как я могу скопировать файлы со структурой каталогов? - PullRequest
2 голосов
/ 12 января 2012

Есть ли способ, которым я могу копировать файлы с их структурой каталогов?

Вот что у меня есть:

  files = FileList.new()
  files.include("#{HOST_DIR}/**/bin/*.dll")
  files.include("#{HOST_DIR}/**/bin/*.pdb")
  files.include("#{HOST_DIR}/**/bin/*.xml")
  files.include("#{HOST_DIR}/**/bin/**/*.xml")
  files.include("#{HOST_DIR}/**/TestData/*.*")
  FileUtils.cp(files,'c:/temp',:verbose => true)    

Копирует все файлы в одну папку c:/temp.Я хотел бы, чтобы файлы хранили структуру каталогов в #{HOST_DIR}.

ОБНОВЛЕНИЕ :

Я получил решение:

 files.each do |file|
    target = file.sub(SERVICEHOST_DIR,'c:/temp')
    FileUtils.mkdir_p(File.dirname(target))    
    FileUtils.cp_r(file,target,:verbose => true)
  end

Isтам лучше?

1 Ответ

0 голосов
/ 12 января 2012

Я думаю, FileUtils # cp_r должен добиться цели.

dest = 'c:/temp'

files = Dir.chdir(HOST_DIR) do
  Dir.glob %w' **/bin/*.dll
               **/bin/*.pdb
               **/bin/*.xml
               **/bin/**/*.xml
               **/TestData/*.*
             '
end

FileUtils.cp_r files, dest, :verbose => true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...