J'essaie d'utiliser RubyZip pour empaqueter certains fichiers. En ce moment j'ai une méthode qui zippe avec bonheur sur des répertoires et sous-répertoires particuliers.RubyZip - les fichiers de différents répertoires ont un chemin dans le zip
def zip_directory(zipfile)
Dir["#{@directory_to_zip}/**/**"].reject{|f| reject_file(f)}.each do |file_path|
file_name = file_path.sub(@directory_to_zip+'/','');
zipfile.add(file_name, file_path)
end
end
Cependant, je souhaite inclure un fichier provenant d'un dossier complètement différent. J'ai la méthode suivante pour résoudre ce:
def zip_additional(zipfile)
additional_files.reject{|f| reject_file(f)}.each do |file_path|
file_name = file_path.split('\\').last
zipfile.add(file_name, file_path)
end
end
Bien que le fichier est ajouté, il copie également la structure de répertoire au lieu de placer le fichier à la racine du dossier. C'est vraiment agaçant et cela rend le travail plus difficile.
Comment puis-je contourner le problème?
Merci
Ben
Je n'arrive pas à voir quoi que ce soit dans le rdoc - http://rubyzip.sourceforge.net/ –
Je ne suis pas sûr de rubyzip, mais je pense que c'est le problème. bibliothèques standard zip ont ce paramètre (inclure le chemin complet), peut-être cet article sera de toute aide ?: http://info.michael-simons.eu/2008/01/21/using-rubyzip-to-create-zip -files-on-the-fly/ il y a une note ci-dessous le code concernant la façon dont le chemin est créé – dusoft