2012-01-11 90 views
2

有没有一种方法可以将文件复制到目录结构中?如何将文件复制到目录结构中?

以下是我有:

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}的目录结构。

UPDATE

我得到了一个解决方案:

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

我认为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 
+0

FileUtils.cp_r不适用于我:( – 2015-07-02 14:55:38

相关问题