Copier un dossier en gardant l'architecture
Salut , j'ai un probleme , j'ai fait un script qui va copier les fichier et les dossier en gardant l'architecture , mais je sait pas comment faire , la il me les copie tous a la racine du dossier cible , comment faire ?
voila mon code source:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| require 'csv'
require 'Functions/MD5.rb'
require 'ftools'
$baseDir = Dir.pwd
$filename = ARGV[0]
$sourceDir = ARGV[1]
def analyze(i)
if File.directory?(i)
actual = Dir.pwd
Dir.chdir(i)
puts "Navigations dans #{i}"
Dir["*"].each do |d|
analyze(d)
end
Dir.chdir(actual)
else
puts "Analyse de #{i}"
$data[i] = checkFile(i)
puts "Copie de #{i}"
File.copy(i,"#{$baseDir}/Dist/#{$filename}_data/#{i}")
end
end
puts "Creation du repertoire de Distibution ,et ecriture du descripteur ..."
Dir.mkdir("Dist")
Dir.chdir("Dist")
Dir.mkdir("#{$filename}_data")
Dir.chdir($baseDir)
Dir.chdir($sourceDir) do
sourceData = Dir["*"]
$data = {}
sourceData.each do |d|
analyze(d)
end
end
Dir.chdir("#{$baseDir}/Dist")
CSV.open($filename, 'w') do |writer|
$data.each do |f|
writer << [f[0] , f[1]]
end
end
puts "l'operation est terminé , vous devez maintenant publier le dossier Dist/" |
que faire ? :p
merci