1

Многие источники сообщают следующее значение как свободное / доступное для записи пространство DVD+R:4700372992 байта

Я написал программу binpacker, используя это значение, но выбранные файлы всегда превышают емкость DVD+R (в то время как DVD-R в порядке).

Я нашел правильное значение должно быть около 4692377600 байт

В чем причина несоответствия свободного места и какое должно быть правильное значение?

1 ответ1

1

TLDR

На это не совсем невозможно ответить, но это практически очень трудно сделать, так как это зависит от данных, которые вы собираетесь записать на диск. По сути, вам нужно будет сделать то, что делает программа записи CD/DVD, чтобы определить, не превышен ли объем диска перед записью. [И я уверен, что некоторые, если не большинство, такие программы не могут сделать это идеально.]

Приблизительно то, что вы уже сделали, то есть ограничиваете себя до меньшей вместимости, вероятно, будет единственным возможным решением в целом.

Программа IsoBuster на самом деле довольно аккуратная. Вы можете довольно легко увидеть, как именно файлы и каталоги хранятся в образе диска, и вы, вероятно, в основном можете перепроектировать, как конкретная файловая система выделяет пространство для файлов разных типов, используя ее. Я собираюсь попробовать это сам.

Некоторые детали

Как и вы, я обнаружил, что вы не можете просто сравнить общий размер файлов в байтах и общую "общую емкость" в байтах диска.

Во-первых, файловые системы, как на жестком диске, так и на оптических дисках, таких как CD и DVD, требуют некоторого пространства для данных о файлах, например, каталогов, в которых они хранятся, имени файла, когда он был последний раз изменен и т.д. ,

Каждая файловая система (почти наверняка) будет требовать разного количества места для разных наборов файлов и каталогов; они также будут иметь различные ограничения с точки зрения таких вещей, как максимальная длина имен файлов, могут ли имена файлов состоять из символов Unicode и т. д.

Различные файловые системы также поддерживают или требуют разных размеров секторов / блоков, что составляет примерно наименьший объем пространства (почти всегда выражаемый в байтах), который может быть выделен файлу, т.е. размер сектора 512 байт подразумевает, что каждый файл выделяется как минимум 512 байты (только для данных файла). Однако для файловой системы UDF, которая может использоваться для CD и DVD (и дисков Blu-ray):

Небольшие файлы (и каталоги) могут храниться в самом блоке File Entry, подобно встроенным файлам в NTFS.

т.е. небольшие файлы (и каталоги) могут храниться в самой метаданных файловой системы. [Источник - ресурс [4] ниже.]

Некоторые ресурсы

  1. Понимание DVD - размер диска, конфигурация и емкость
  2. Универсальный формат диска - Википедия, бесплатная энциклопедия
  3. Спецификация Universal Disk Format®, редакция 2.50
  4. Введение Вэньгуана в универсальный формат диска (UDF)
  5. CDBurnerXP: Создать диск с данными
  6. Дисковый сектор - Википедия, свободная энциклопедия
  7. Создание оптических дисков - Википедия, свободная энциклопедия

Из [5]:

Даже если вы не добавите никаких файлов, используемое дисковое пространство будет где-то выше 1 МБ. Это связано с тем, что каждому образу данных присуща системная служебная нагрузка для таблиц распределения, данных тома, системного пространства и таблиц путей (чтобы назвать несколько). Кроме того, необходимо зарезервировать некоторое пространство для процессов ввода и вывода, ок. 13 МБ начиная с версии 4.5 CDBurnerXP.

Исходя из [7], я не думаю, что "ввод" и "вывод" обязательно относятся к дискам с данными.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .