【发布时间】:2014-10-25 00:30:06
【问题描述】:
我们有多个 .NET Web 应用程序,它们都共享相当多的公共库。他们都不在 GAC 中。
部署约束是所有这些 Web 应用程序都有专用目录。这会导致整个目录结构中出现大量重复的 dll。
此目录结构是从单个 zip 存档中提取的。
因此,zip 存档在不同目录中有许多相同的文件。
这是一个巨大的冗余,我想在 zip 存档中消除它,我不太关心是否在磁盘上创建了冗余文件。我看到了两种优化 zip 的方法:
- 使用 Windows 符号链接和连接来减少物理相同文件的数量。
- 使用不会将相同文件数据压缩两次的智能压缩。
方法一
我使用 zip 和 7z 来测试压缩目录结构。我使用联结和文件符号链接作为减少磁盘空间的方法。
不幸的是,zip 和 7z 都压缩连接,就好像它们是完整的目录一样。一个符号链接被 7z 压缩为一个零长度的文件,它作为符号链接的性质在解压缩时会丢失。 zip 会遍历符号链接并压缩目标数据,这会导致存档中的文件内容重复。
简而言之,我没有使用第一种方法消除重复的文件数据。
方法二
http://sourceforge.net/p/sevenzip/feature-requests/794/ 准确描述了我想要的。然而,它只不过是一个功能请求。
对功能请求的评论提到lrzip 是一种高效的大文件压缩器。我必须检查它,但它似乎并没有像我希望的那样消除重复的文件数据。
欢迎任何帮助。
【问题讨论】: