簡體   English   中英

rubyzip 文件順序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM