7

几个月前我已经在这里问过类似的问题,但是我的更新中使用的解决方案当然不好,因为我不知道我想要的文件从哪个偏移开始,该代码读取整个文件,直到找到想要的字符串这不方便。这就是为什么我搜索了一个用 Java 编码的 ISO9660 文件阅读器,我遇到了这个可以完美读取 ISO9660 文件的项目,但是有一些文件格式bin ,img 我希望能够打开。

不幸的是,该代码不起作用,因为它期望 ISO9660 标头位于此处此处\x01CD001\x01的标准所定义的前缀偏移量(32768,就在前 16 个扇区之后,保留用于其他目的):

7. 前十六扇区为空

前 16 个扇区(扇区编号 0 到 15,包括在内)只包含零。ISO9660 没有定义这些扇区的内容,但对于 DOS,它们显然总是写为零。它们显然是为可以从 CD-ROM 引导的系统保留的。

就我而言,我有一个img磁盘bin 映像,其\x01CD001\x01标头的偏移量为 37656,在第 18 个扇区结束后 792 个字节。这会使代码抛出错误。

既然有软件可以 在不需要 or文件的情况下读取bin and文件的内容,那么在这种情况下填写文件头的规则是什么?它是标准还是他们通过字节粗暴地搜索标头?如果这是一个标准,我在哪里可以找到任何类型的文档/实施?imgcueccd

更新:我发现这些文件有不同的扇区大小:2352 字节/扇区,因为它们是 CD-R 的原始副本。

4

1 回答 1

4

由于我没有找到类似的东西,也没有人给出答案,我自己编写了一个解决方案,你可以在这里找到它。

它是一个能够从符合 ISO9660 格式的磁盘映像中读取文件的库。它都支持每扇区图像 2048 和 2352 字节。

于 2014-03-24T14:19:06.920 回答