2012-01-11 3 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이 (가) 작동하지 않았습니다. –

관련 문제