我正在为一个目录创建一个存档,其中每个文件都有一个从 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、...)。
如何确保它们按数字顺序解压?
编辑:使用十六进制编辑器查看生成的 zip 文件显示图像以不合理的顺序添加,但它们是unzip
按照它们在中央目录中出现的顺序提取的(在 zip 文件末尾的块)。