从原始磁盘映像读取文件(2352字节/扇区)

Vek*_*r88 7 java iso9660

几个月前我已经在这里问了类似的东西,但当然我的更新中使用的解决方案并不好,因为我不知道哪个偏移量启动了我想要的文件,该代码读取整个文件,直到找到所需的字符串那不方便 这就是我搜索用Java编码的ISO9660文件阅读器的原因,我在这个项目中读到了完美的ISO9660文件,但有些文件格式bin 和img 我希望能够打开.

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

7.前十六个部门是空的

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

在我的情况下,我有imgbin 磁盘映像的\x01CD001\x01标题位于第18扇区结束后的偏移量37656,792字节.这使代码抛出错误.

由于有软件能够 在不需要 或文件的情况下读取bin 和img文件的内容,在这种情况下,使用标头的规则是什么?它是标准还是粗暴地通过字节搜索标题?如果它是一个标准,我在哪里可以找到任何类型的文档/实现?cueccd

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

Vek*_*r88 5

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

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