Я делаю архив для каталога, в котором каждый файл имеет имя из 3 цифр, начиная с 001 до 049. Мой код следующий:
Zip::ZipFile.open(File.join(out, dir+".cbz"), Zip::ZipFile::CREATE) {
|zipfile|
Dir.glob(File.join(dir, "*")).sort.each {
|file|
puts "add file #{file}"
zipfile.add(File.basename(file),file)
}
}
При добавлении файлов я подтвердил puts
, что они добавляются в порядке возрастания номеров.
Но когда я пытался распаковать их с помощью zip
, я обнаружил, что они распакованы в случайном порядке (например, 045, 002, ...).
Как я могу обеспечить, чтобы они распаковывались в числовом порядке?
Редактировать: рассмотрение созданного zip-файла с помощью шестнадцатеричного редактора показывает, что изображения добавляются не в разумном порядке, а извлекаются с помощью unzip
в том порядке, в котором они присутствуют в центральном каталоге (блок на конец почтового файла).