存档数千个文件和7zip限制

时间:2010-12-22 21:01:17

标签: c# 7zip

我的应用程序要求每天运行一个任务,其中需要压缩100,000多个PDF(每个~50kb)文件。目前,我正在使用7-zip并调用7za.exe(带有7-zip的命令行工具)来压缩每个文件(文件位于许多不同的文件夹中)。

这种方法有哪些限制,如何解决? 7zip存档是否有文件大小或文件数限制?

1 个答案:

答案 0 :(得分:4)

文件大小限制为16艾字节,或16000000000 GB。

文件数没有硬性限制,但管理文件头的方式存在实际限制。确切的限制取决于路径长度,但在32位系统上,您将遇到大约一百万个文件的限制。

我不确定是否有其他格式支持更多。普通拉链的限制要小得多。

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

  

7-Zip的一个值得注意的限制是,虽然它支持的文件大小高达16艾字节,但它具有异常高的开销分配文件内存,除了执行实际压缩的内存要求之外。

     

每个文件大约需要1千字节(如果路径名很长,则更多),单独的文件列表可以增长到比实际压缩所需的内存大一个数量级。实际上,这意味着32位系统无法在一个存档中压缩超过一百万个文件,因为内存要求超过了2 GB的进程限制。

     

64位系统不会受到相同的进程大小限制,但仍需要几千兆字节的RAM才能克服此限制。但是,在此类系统上创建的存档在内存较少的计算机上将无法使用。