2013-07-04 34 views
18

Tüm alt klasörleri olan bir klasörü bir hedef klasöre kopyalamaya çalışıyorum. Aşağıdaki kod bunu yapmıyor gibi görünüyor. BenAlt klasörlerin bulunduğu klasörleri bir hedef konuma yakacak şekilde kopyalayın

FileUtils.cp_r(Dir["/Volumes/TempData/Collects/Sasi/android/*.*"],"/Volumes/Data/Apps/android") 

ben özlüyorum nedir kullanarak alt klasörlerin yerine dosyaları kopyalamak mümkün değil mi?

require 'fileutils' 
puts "operating_system" 
operating_system = gets.chomp 

    if operating_system == "android" then 
    FileUtils.cp_r(Dir["/Volumes/TempData/Collects/Sasi/android/**"],"/Volumes/Data/Apps/android") 
    puts "done" 
    elsif operating_system == "ios" then 
    FileUtils.cp_r(Dir["Volumes/Data/Apps/iOS/CX5/**"],"/Volumes/TempData/Collects/For_CS") 
    puts "done" 
    else 
    puts "do nothing" 
    end 

cevap

27

FileUtils.copy_entry yöntemi sizin için bir dizin ağacı kopyalar gibi görünüyor. rubydoc bazı bilgiler vardır: http://www.ruby-doc.org/stdlib-2.0/libdoc/fileutils/rdoc/FileUtils.html#method-c-copy_entry

var (örneğin dosya sahipliğini korumak için olmadığı gibi) pek çok seçenek vardır ama bazı hızlı testler aynen bu şekilde kaynak ve hedef dizinleri geçebilir gösterir:

FileUtils.copy_entry @source, @destination 
+1

Çok teşekkürler, işe yarıyor! – sasi

+0

Benim için de çalışıyor. – amorphid

+0

Threadnecromancer, @sasi sizin için işe yararsa lütfen cevabı kabul edin. – Pred