有没有办法可以用目录结构复制文件?
这就是我所拥有的:
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
有更好的吗?
答案 0 :(得分:0)
我认为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