2010-12-22 18 views
4

我的應用程序要求每天運行一個任務,其中需要壓縮100,000個以上的PDF(每個〜50kb)文件。目前,我正在使用7-zip並調用7za.exe(帶有7-zip的命令行工具)來壓縮每個文件(文件位於許多不同的文件夾中)。存檔數千個文件和7zip限制

這種方法有哪些侷限性,它們如何解決?是否有7zip檔案的文件大小或文件數量限制?

回答

3

文件大小的限制是16艾字節或16000000000 GB。

對文件數量沒有硬性限制,但是在管理文件頭文件方面存在實際限制。確切的限制取決於路徑長度,但在32位系統上,您會遇到大約一百萬個文件的限制。

我不確定是否有其他格式支持更多。普通郵編的限制要小得多。

http://en.wikipedia.org/wiki/7-Zip

的7-Zip的一個顯着的限制是,雖然它支持多達16個艾字節的文件大小,它有一個非常高的開銷分配的文件存儲,在對內存的要求頂部執行實際壓縮。

大約1千字節每文件要求(更多,如果路徑很長)和文件單獨上市可以長到數量級比做實際壓縮所需的內存大一個數量級。在現實世界中,這意味着32位系統無法在一個存檔中壓縮超過一百萬個文件,因爲內存要求超過了2 GB的處理限制。

64位系統不會從同一進程大小限制受到影響,但仍需要的RAM數千兆字節來克服這個限制。然而,在這種系統上創建的檔案在內存較少的機器上將無法使用。