回覆列表
  • 1 # 使用者6577172337723

    如果壓縮包可以 streaming decompress(通常的 gzip 可以),而且壓縮率是平穩的,那麼應該可以做到。先讀取解壓縮後的檔案大小,例如 2.8GB,然後建立一個 0.8GB 的臨時檔案,當作 circular buffer (或者建立 800 個 1MB 的臨時檔案,這樣省去第二部調整順序這一環節)。第一步:順序讀取壓縮檔案,一邊解壓縮,一邊把結果放到臨時檔案 (enqueue)。同時把臨時檔案的內容 dequeue 並回填到壓縮檔案的頭部。比如說先讀第1MB,解壓縮得到1.4MB,把前1MB寫回壓縮檔案頭部,剩下的0.4MB在臨時檔案中;再讀第2MB,解壓縮得到1.4MB,放在臨時檔案中,這時臨時檔案有1.8MB有用資料,把前1MB寫回壓縮檔案頭部,臨時檔案剩下0.8MB有用資料;以此類推。只要臨時檔案不爆掉,那麼這一過程完成之後,原來的壓縮檔案包含解壓縮結果的前 2 GB,臨時檔案包含解壓縮結果的後 0.8GB。第二步:調整臨時檔案的順序,然後從後往前讀,一邊讀一邊append到原來的壓縮檔案,同時 truncate 臨時檔案。第二步完成之後,原壓縮檔案變成 2.8G,包含解壓縮的完整內容,臨時檔案為空。最後 rename 一下即可。Sample : github.com 的頁面

  • 2 # 使用者3937226028394

      隨身碟的檔案系統一般採用FAT32,單檔案容量上限為4GB,需要將隨身碟變成NTFS或者是exFAT檔案系統才可以存入單個4GB以上的檔案。具體操作步驟如下所示:

      1、如果您不想改變檔案系統,可以藉助壓縮軟體的分卷壓縮的方式,選擇壓縮之後在彈出的【壓縮檔名和引數】視窗中輸入分卷大小,將大檔案拆分為小於4G的數個小檔案來儲存;只需要確保每一個壓縮檔案都在4GB以下,且共同存放在同一個目錄。移出隨身碟之後,就可以使用右鍵解壓合併多個檔案還原;

      2、不格式化轉換隨身碟的檔案系統需要在CMD命令符中轉換,使用【Win】+【R】,然後在【執行】的輸入框中輸入【cmd】;

      3、在cmd之中輸入convert 碟符: /fs:需要轉換的檔案系統,比如隨身碟是F盤,需要轉換為NTFS,可以輸入convert F: /fs:ntfs即可。

  • 中秋節和大豐收的關聯?
  • 如何加強英語學習?