ディレクトリのアーカイブを作成しています。各ファイルには、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 ファイルを 16 進エディターで見ると、イメージが適切な順序で追加されていないことがわかりますがunzip
、中央ディレクトリに存在する順序で抽出されていることがわかります (zip ファイルの最後のブロック)。