Я использую IMAPIv2 для записи CD/DVD в моем проекте C#. Я понял, что интерфейс горит в XA-формате (режим 2). Я считаю, что XA-формат в основном используется для ISO. Много примеров о IMAPIv2 в Интернете использует следующий метод, чтобы продемонстрировать общее дисковое пространство и свободное пространство:Можно ли выбрать режим записи cd в интерфейсе IMAPI?
discFormatData.Recorder = discRecorder;
IMAPI_MEDIA_PHYSICAL_TYPE mediaType = discFormatData.CurrentPhysicalMediaType;
this.MediaType = GetMediaTypeString(mediaType);
fileSystemImage = new MsftFileSystemImage();
fileSystemImage.ChooseImageDefaultsForMediaType(mediaType);
MediaStateString = GetMediaStatus(discFormatData.CurrentMediaStatus);
if (discFormatData.MediaHeuristicallyBlank) MediaStateString = "Blank";
Int64 freeMediaBlocks = discFormatData.FreeSectorsOnMedia;
this.TotalDiscCapacity = 2048 * freeMediaBlocks;
Int64 userMediaBlocks = discFormatData.TotalSectorsOnMedia - discFormatData.FreeSectorsOnMedia;
this.TotalUsedDiscSpace = 2048 * userMediaBlocks;
К сожалению, если умножить 2048 * с TotalSectorsOnMedia, как описано выше, я не получу правильную Общую емкость диска , Когда я записываю диск с емкостью 800 Мбайт с IMAPIv2, тогда приведенный выше код покажет, что емкость моего диска составляет около 650 МБ. Когда я проверяю диск с другими программными горелками, я вижу, что в этом режиме установлен XA. Можно ли установить этот режим перед записью? Кроме того, как я могу решить проблему определения свободного места на диске, если есть сеансы, написанные в режиме 1? Можно ли узнать, в каком режиме записывается диск?
Спасибо.
Производитель пустого диска всегда дает вам оптимистичное число, неформатированный размер. 650 МБ - это нормальный размер отформатированного CD-Rom. –
Диск, с которым я работаю, обладает емкостью 800 Мб и другими программами для горения. –
@MP: Я пишу программу для записи компакт-дисков :-) –