[英]rubyzip file order
我正在為一個目錄創建一個存檔,其中每個文件都有一個從 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 末尾文件)。
我已經將此追溯到 rubyzip 庫中的一個問題,即條目數組在寫入中央目錄之前沒有被排序,但unzip
依賴於這個順序。
已修復,並向上游發送了拉取請求。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.