2

我一直成功使用 erlangstdlibzip:unzip/1。昨晚我遇到了这个错误:

E:\WimaxStatsParser-1.1>erl
Eshell V5.9.2(使用 ^G 中止)
1> zip:unzip("e:/WimaxStatsParser-1.1/in/SomeZipFile.zip")。
{错误,bad_central_directory}
2>

有人帮助解释原因吗?以及我如何解决它?

补充


我在另一个文件上遇到了其他错误: {error,bad_eocd}. 请也解释一下。

4

1 回答 1

1

我无法用您提供的信息重现您的问题。有 2 个函数可能会发送此错误:

stdlib-1.18.2/src/zip.erl 中的 get_cd_loop/5 和 get_name_extra_comment/4 。

应该很容易调试

将文件 zip.erl、zip.hrl、file.hrl 复制到工作目录中,

使用 debug_info 选项编译,您将收到错误消息“无法加载驻留在粘性目录中的模块”,离开 VM

将 zip.beam 复制到 stdlib.../ebin

在工作目录中重新启动 VM,您现在可以在 zip.erl 源中添加断点。

BR

帕斯卡。

于 2012-10-16T14:25:55.033 回答