Я уже спрашивал что-то подобное здесь несколько месяцев назад, но, конечно, решение использовал в моем обновлении не хорошо, потому что я не знаю, по какому смещению начинается файл, который я хочу, этот код читает весь файл, пока не найдет нужную строку, и это не удобно. Вот почему я искал программу чтения файлов ISO9660, закодированную на Java, и наткнулся на это проект, который отлично читает файлы ISO9660, но есть некоторые форматы файлов, такие как bin
и img
, которые я хотел бы открыть.
К сожалению, этот код не работает, поскольку он ожидает заголовок ISO9660 \x01CD001\x01
с префиксным смещением (32768, сразу после первых 16 секторов, зарезервированных для других целей), как определено стандартом здесь и здесь:
<сильный>7. Первые шестнадцать секторов пусты
Первые шестнадцать секторов (номера секторов от 0 до 15 включительно) не содержат ничего, кроме нулей. ISO9660 не определяет содержимое этих секторов, но для DOS они видимо всегда записываются нулями. Очевидно, они зарезервированы для использования системами, которые могут быть загружены с компакт-диска.
В моем случае у меня есть образы дисков img
и bin
, которые имеют заголовок \x01CD001\x01
со смещением 37656, 792 байта после конца 18-го сектора. Это приводит к тому, что код выдает ошибку.
Поскольку существуют программы, способные читать содержимое файлов bin
и img
без необходимости в файлах cue
или ccd
, каково правило заполнения заголовка в таких случаях? Это стандарт или они зверски перебирают заголовок по байтам? Если это стандарт, где я могу найти какую-либо документацию/реализацию?
ОБНОВЛЕНИЕ: я обнаружил, что эти файлы имеют другой размер сектора: 2352 байта/сектор, потому что они являются необработанными копиями CD-R.
file
говорит об этих файлах (при условии, что вы используете систему Linux или Mac OS X)? - person fge   schedule 23.03.2014data
- person Vektor88   schedule 23.03.2014