我有一个C#程序,使用SharpZIPlib来解压缩一些zip文件?它工作正常,但在一个文件中,我不断收到“意外的EOF”错误?实际上是否有EOF标记,或者Zip文件是否被截断?什么是ZIP文件的EOF标记?
1
A
回答
6
您的文件被截断(或可能被扩展或以其他方式损坏)。
你可以运行常规的解压程序(如'unzip -l file.zip
')来证明这一点。
顺便说一句,如果您使用FTP下载文件,您是否记得使用二进制传输?如果您(意外)使用ASCII模式,那么将破坏任何二进制文件,如ZIP压缩文件。
2
意外的EOF意味着:读取文件时,该函数遇到文件的结尾,并且库期待其他数据(数据)。这不是一个标记。
4
一个简单的ZIP文件看起来像这样:
LocalHeader1
CompressedData1
LocalHeader2
CompressedData2
[...]
LocalHeaderN
CompressedDataN
CentralHeader1
CentralHeader2
[...]
CentralHeaderN
EndHeader
的EndHeader包含(除其他事项外)偏移到第一CentralHeader,则每个CentralHeader包含一个偏移到其匹配LocalHeader。
某些库可以从头开始读取zip文件以顺序处理LocalHeaders,从而恢复可以恢复损坏的zip文件的内容。
1
您是否试过DotNetZip? http://www.codeplex.com/DotNetZip
相关问题
- 1. 二进制文件的EOF是什么?
- 2. 什么是EOF?
- 3. doxygen标记文件究竟是什么?
- 4. LineNumberReader标记EOF
- 5. 什么是文件something.zip的正确名词? “.zip”或“zip”?
- 6. 为什么上传的文件Zip文件是空的?
- 7. 什么是“标记的DFA”?
- 8. 生成文本文件时的EOF标记?
- 9. 什么是“图标?”文件?
- 10. 什么是标记界面?
- 11. 什么是标记扩展?
- 12. 什么是缓存标记?
- 13. 标记是什么意思?
- 14. 什么是坏标记?
- 15. 什么是标记界面?
- 16. 密码保护的ZIP文件的字节签名是什么?
- 17. RootNamespace标记在* .vcxproj文件中的含义是什么?
- 18. xml文件中'<? ?>'标记的vim组名是什么?
- 19. Delphi .dproj文件中的<DCCReference>标记是什么?
- 20. Bindingsource中EOF的等价物是什么?
- 21. 什么是C++中的EOF密钥
- 22. JPEG EOF与EOI标记
- 23. 什么是最小的合法zip/jar文件?
- 24. 什么是使用java提取zip文件的最佳方式
- 25. Android中ZIP文件夹中的par baseName是什么?
- 26. 什么是最好的Python Zip模块来处理大文件?
- 27. 是否有可能创建一个没有EOF标记的文件?
- 28. eof()返回什么?
- 29. 目标C的Nib文件是什么?
- 30. 为什么我的HTTPS文件下载损坏.zip文件?
有趣的信息 - 谢谢。 – 2009-02-06 22:08:56