首页 > 解决方案 > 如何在c#中压缩4GB以上的文件时跳过ZIP64格式

问题描述

在这里,我尝试使用大小大于 4 GB 的 .net 4.5 版本创建 zip 文件。创建为 ZIP64 的文件格式。之后,还有一个用java编写的程序将解压缩和处理。但是java代码会抛出像“无效条目大小”这样的错误。我们可以跳过 ZIP64 格式,以便 java 代码可以轻松处理 zip 文件吗?

public static void ZipTest(string infile, string outfile)
{
   using (ZipArchive archive = System.IO.Compression.ZipFile.Open(outfile,                                         
                                                                 ZipArchiveMode.Create))
   {
     archive.CreateEntryFromFile(infile, Path.GetFileName(infile));
   }
}

标签: c#.net-core7zipdotnetzipsevenzipsharp

解决方案


这是不可能的,因为原始.ZIP格式对输入和输出文件有 4 Gb 的限制。

来自维基百科上的 ZIP 文章

对于标准 ZIP,归档文件和其中的单个文件的最大大小为 4,294,967,295 字节(23^2−1 字节,或 4 GiB 减去 1 字节)。


推荐阅读