如何解决 System.Zip.TZipFile.ExtractAll 未从 .zip 文件中提取所有数据的问题?
How to resolve System.Zip.TZipFile.ExtractAll not extracting all data from .zip file?
我正在使用 Embarcadero C++Builder 10.1 Berlin Update 2。我正在使用 System.Zip.TZipFile.ExtractAll()
提取大型 .zip
文件。
以下是问题场景的详细信息:
.zip
文件的大小为 387,077 KB
- 使用
System.Zip.TZipFile.ExtractAll()
提取.zip
文件,我们得到:
- 一个 4,194,304 KB 大小的文件。
- 数据被截断。
- 使用Windows OS,右击
Extract All...
,我们得到
- 一个 6,035,259 KB 大小的文件。
我们需要此文件中的所有数据。
阅读 System.Zip.TZipFile 文档,我没有看到任何与文件大小相关的限制。
据我所知,这是 Embarcadero 提供的提取 .zip
文件的方法。我该如何解决这个问题?
除非您告诉我们数据是被简单地截断还是以某种方式进行了转换,否则我们只能真正猜测发生了什么。然而,这是一个有根据的猜测。
您的输出正好是 232 字节长,这是许多旧技术的熟悉边界。
事实上(正如您所指出的)文档没有说明这个限制,这进一步表明这只是开发人员可能很久以前不厌其烦地支持的上限。他们从未想过您会需要比这更多的东西,尤其是直到 [相对] 最近,许多文件系统甚至不支持比这更大的文件。
更喜欢现代、标准的 C++ 和一个很好的第三方库来解压缩。
我正在使用 Embarcadero C++Builder 10.1 Berlin Update 2。我正在使用 System.Zip.TZipFile.ExtractAll()
提取大型 .zip
文件。
以下是问题场景的详细信息:
.zip
文件的大小为 387,077 KB- 使用
System.Zip.TZipFile.ExtractAll()
提取.zip
文件,我们得到:- 一个 4,194,304 KB 大小的文件。
- 数据被截断。
- 使用Windows OS,右击
Extract All...
,我们得到- 一个 6,035,259 KB 大小的文件。
我们需要此文件中的所有数据。
阅读 System.Zip.TZipFile 文档,我没有看到任何与文件大小相关的限制。
据我所知,这是 Embarcadero 提供的提取 .zip
文件的方法。我该如何解决这个问题?
除非您告诉我们数据是被简单地截断还是以某种方式进行了转换,否则我们只能真正猜测发生了什么。然而,这是一个有根据的猜测。
您的输出正好是 232 字节长,这是许多旧技术的熟悉边界。
事实上(正如您所指出的)文档没有说明这个限制,这进一步表明这只是开发人员可能很久以前不厌其烦地支持的上限。他们从未想过您会需要比这更多的东西,尤其是直到 [相对] 最近,许多文件系统甚至不支持比这更大的文件。
更喜欢现代、标准的 C++ 和一个很好的第三方库来解压缩。