我的应用程序要求每天运行一个任务,其中需要压缩100,000多个PDF(每个~50kb)文件。目前,我正在使用7-zip并调用7za.exe
(带有7-zip的命令行工具)来压缩每个文件(文件位于许多不同的文件夹中)。
这种方法有哪些限制,如何解决? 7zip
存档是否有文件大小或文件数限制?
答案 0 :(得分:4)
文件大小限制为16艾字节,或16000000000 GB。
文件数没有硬性限制,但管理文件头的方式存在实际限制。确切的限制取决于路径长度,但在32位系统上,您将遇到大约一百万个文件的限制。
我不确定是否有其他格式支持更多。普通拉链的限制要小得多。
http://en.wikipedia.org/wiki/7-Zip
7-Zip的一个值得注意的限制是,虽然它支持的文件大小高达16艾字节,但它具有异常高的开销分配文件内存,除了执行实际压缩的内存要求之外。
每个文件大约需要1千字节(如果路径名很长,则更多),单独的文件列表可以增长到比实际压缩所需的内存大一个数量级。实际上,这意味着32位系统无法在一个存档中压缩超过一百万个文件,因为内存要求超过了2 GB的进程限制。
64位系统不会受到相同的进程大小限制,但仍需要几千兆字节的RAM才能克服此限制。但是,在此类系统上创建的存档在内存较少的计算机上将无法使用。