порядок файлов rubyzip - PullRequest
       13

порядок файлов rubyzip

0 голосов
/ 10 июня 2011

Я делаю архив для каталога, в котором каждый файл имеет имя из 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 в том порядке, в котором они присутствуют в центральном каталоге (блок на конец почтового файла).

1 Ответ

0 голосов
/ 12 июня 2011

Я проследил это до проблемы в библиотеке rubyzip, из-за которой массив записей не сортировался до записи в центральный каталог, но unzip зависел от этого порядка.

Исправлено,и отправил запрос извлечения в восходящем направлении.

...