Метод ниже, который я пробовал. В этом случае все подпапки (подпапка1, .. 2) содержат несколько папок и файлов. Этот метод создает zip-файл со всеми подпапками, но все подпапки пусты. У него нет папок или файлов.
def zip_file
require 'zip'
folder = "D:/my_folder"
input_filenames = ['subfolder1', 'subfolder2', 'subfolder3']
zipfile_name = "D:\\my_folder.zip"
Zip::File.open(zipfile_name, Zip::File::CREATE) do |zipfile|
input_filenames.each do |filename|
zipfile.add(filename, File.join(folder, filename))
end
end
end