我需要文件訪問才能同時讀取和寫入來自不同線程的相同ZIP壓縮文件。同時訪問ZIP文件中的不同文件夾
每個線程在歸檔中都有自己的子目錄,所以不會有衝突,但我認爲操作系統並不關心這個問題。
對於ZIP操作,我使用libzip。我如何執行訪問?我需要照顧一些特別的東西嗎?
我可以在應用程序啓動時解壓壓縮文件,並在退出時壓縮它,但我更願意直接在壓縮文件上操作,這就是爲什麼我要問這個問題。
我需要文件訪問才能同時讀取和寫入來自不同線程的相同ZIP壓縮文件。同時訪問ZIP文件中的不同文件夾
每個線程在歸檔中都有自己的子目錄,所以不會有衝突,但我認爲操作系統並不關心這個問題。
對於ZIP操作,我使用libzip。我如何執行訪問?我需要照顧一些特別的東西嗎?
我可以在應用程序啓動時解壓壓縮文件,並在退出時壓縮它,但我更願意直接在壓縮文件上操作,這就是爲什麼我要問這個問題。
並行開箱不應該是困難的,但打包文件絕對會是不平凡/
不幸的是,目錄的名稱不真的,如果你使用的是ZIP格式沒關係 - 頭對於文件存儲位置而言,只是一個路徑和文件名爲一個整體的結構,並且zip文件中不存在不同的目錄。
數據並不好,因爲每個文件的數據只是作爲前一個文件之後的一個連續數據流存儲,並且在下一個文件之前。
當然,人們可以在準備好壓縮數據,一旦完成數據,分配空間以及將頭添加到目錄中之後創建一個zip歸檔功能 - 兩者都在某種鎖定下,然後可以將數據寫入實際文件而不用鎖定[雖然我不確定它如何在不使用鎖的情況下寫入文件中的不同位置。
(它在維基百科here很好的說明,但如果你沒有學習這些東西都有哪些不同的數據結構的後果變得可能並不完全清楚)
+1。更新*部分壓縮文件是非常重要的。關於你能做的唯一事情就是測試新壓縮的數據是否恰好是原始塊的大小。 – usr2564301