Compression 如何在一个zip文件中存储一次文件,而不是将其复制到50个文件夹中

Compression 如何在一个zip文件中存储一次文件,而不是将其复制到50个文件夹中,compression,zip,duplicates,Compression,Zip,Duplicates,我有一个目录结构,我需要写入一个zip文件,其中包含一个在50个子目录中重复的文件。当用户下载zip文件时,复制的文件需要出现在每个目录中。是否有一种方法可以将文件存储在zip文件中一次,然后在提取文件时将其下载到子目录中?我不能使用快捷方式 看起来Zip足够聪明,可以识别出我有50个重复的文件,并自动存储一次文件。。。这将是愚蠢的,使这个文件比必要的大50倍 在ZIP规范中,中心目录中的多个条目可能指向同一个本地头偏移量。ZIP应用程序必须预先计算要添加的文件的CRC,并在现有ZIP文件的中心

我有一个目录结构,我需要写入一个zip文件,其中包含一个在50个子目录中重复的文件。当用户下载zip文件时,复制的文件需要出现在每个目录中。是否有一种方法可以将文件存储在zip文件中一次,然后在提取文件时将其下载到子目录中?我不能使用快捷方式


看起来Zip足够聪明,可以识别出我有50个重复的文件,并自动存储一次文件。。。这将是愚蠢的,使这个文件比必要的大50倍

在ZIP规范中,中心目录中的多个条目可能指向同一个本地头偏移量。ZIP应用程序必须预先计算要添加的文件的CRC,并在现有ZIP文件的中心目录中找到匹配的条目。对包含大量条目的ZIP文件进行CRC查询将是一项昂贵的操作。在大文件上预先计算CRC也会很昂贵(CRC计算通常在压缩例行程序中完成)

我还没有听说过一个特定的ZIP应用程序可以进行这种优化。但是,它看起来确实像StuffIt X format支持重复文件:

StuffIt X格式支持“重复检测”。将文件添加到存档时,StuffIt会检测是否存在重复项(即使它们具有不同的文件名),并且只压缩重复项一次,而不管有多少副本。展开后,StuffIt将重新创建该实例中的所有副本。根据要压缩的数据,它可以显著减少大小和压缩时间


我只是想澄清一下,Suffit解决方案仅在压缩为自己的专有格式而不是ZIP时删除重复文件