c# - 如何在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));
}
}
解决方案
这是不可能的,因为原始.ZIP
格式对输入和输出文件有 4 Gb 的限制。
对于标准 ZIP,归档文件和其中的单个文件的最大大小为 4,294,967,295 字节(23^2−1 字节,或 4 GiB 减去 1 字节)。
推荐阅读
- python - 更新模型一部分的权重 (nn.Module)
- flask - 为什么路由“/login”和“/register”不起作用?
- c++ - RadioMedium 的 maxCommunicationRange 参数和 Radio 发射机的功率参数之间有什么关系?
- google-analytics - 如何从服务器端设置 Google Analytics(Firebase 分析)用户属性?
- flutter - 显示在配置文件或发布模式下运行的上下文菜单时,Flutter 基本应用程序在 Chrome 上停止响应
- opengl - 尝试访问 gl_Position 时 GLSL 顶点着色器中断
- autohotkey - AHK - 模拟 Fn 快捷键
- python - 我们可以用什么来区分 linux 和 macos AppVeyor 构建?
- java-8 - Java 8 堆转储分析
- r - 如何删除文本中的某些行?