我正在为一个目录创建一个归档文件,其中每个文件都有一个从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解压它们时,我发现它们是以一个随机的顺序解压的(例如。045,002,...)。
如何确保它们按数字顺序解压缩?
编辑:使用十六进制编辑器查看生成的压缩文件,可以看到图像的添加顺序并不合理,而是按照它们在中心目录中的显示顺序(压缩文件末尾的块)通过unzip提取出来的。
发布于 2011-06-12 05:47:21
我已经追踪到rubyzip库中的一个问题,在将条目数组写入中央目录之前,没有对其进行排序,但unzip依赖于此顺序。
https://stackoverflow.com/questions/6299646
复制相似问题