rubyzip文件顺序

rubyzip文件顺序,ruby,rubyzip,Ruby,Rubyzip,我正在为一个目录做一个存档,其中每个文件都有一个名称,名称从001到049有3个数字。我的代码如下: 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

我正在为一个目录做一个存档,其中每个文件都有一个名称,名称从001到049有3个数字。我的代码如下:

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解压它们时,我发现它们是按随机顺序解压的,比如045002

如何确保它们按数字顺序解压


编辑:使用十六进制编辑器查看生成的zip文件表明,图像的添加顺序不合理,但它们是按照zip文件末尾的中央目录块中的显示顺序通过解压进行提取的。

我已经追踪到rubyzip库中的一个问题,因此,条目数组在写入中央目录之前没有进行排序,但解压依赖于此顺序


修复了,并且

为什么解压顺序很重要?程序正在生成CBZ漫画书文件,而reader程序对zip文件中的顺序而不是名称敏感。