2012-01-11 89 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

相關問題