由于我最初的问题有点太模糊,让我澄清一下。
我的目标是:
- 通过 IMAPI 选择文件系统后估计空白磁盘大小
- 估计如果我刻录我的文件将占用这张光盘的空间。
我想知道的:
- 是否可以通过编程方式为所选文件系统获取每个扇区的字节数
- 如果没有,IMAPI 用于不同文件系统/媒体类型的每个扇区字节数是否有默认值,是否有记录在某处。
最佳答案
好的,所以对我的问题的简短回答是:可以安全地假设,DVD/BD 光盘的扇区大小 = 2048 字节。
我在调试 session 期间获得不同大小的原因是因为代码错误,它检索了扇区数:)
提到的代码块是从 http://www.codeproject.com/Articles/24544/Burning-and-Erasing-CD-DVD-Blu-ray-Media-with-C-an 复制粘贴的,以防万一我发布了一个快速修复。
原代码:
discFormatData = new MsftDiscFormat2Data();
discFormatData.Recorder = discRecorder;
IMAPI_MEDIA_PHYSICAL_TYPE mediaType = discFormatData.CurrentPhysicalMediaType;
fileSystemImage = new MsftFileSystemImage();
fileSystemImage.ChooseImageDefaultsForMediaType(mediaType);
if (!discFormatData.MediaHeuristicallyBlank)
{
fileSystemImage.MultisessionInterfaces = discFormatData.MultisessionInterfaces;
fileSystemImage.ImportFileSystem();
}
Int64 freeMediaBlocks = fileSystemImage.FreeMediaBlocks;
固定代码:
discFormatData = new MsftDiscFormat2Data { Recorder = discRecorder };
fileSystemImage = new MsftFileSystemImage();
fileSystemImage.ChooseImageDefaults(discRecorder);
if (!discFormatData.MediaHeuristicallyBlank)
{
fileSystemImage.MultisessionInterfaces = discFormatData.MultisessionInterfaces;
fileSystemImage.ImportFileSystem();
}
Int64 freeMediaBlocks = fileSystemImage.FreeMediaBlocks;
关于c# - 空白 DVD/蓝光光盘 (IMAPI) 上的可用空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12423357/