Ok, vậy câu trả lời ngắn cho câu hỏi của tôi là: người ta có thể SAF giả sử rằng, kích thước sector cho đĩa DVD/BD = 2048 byte.
Lý do, lý do tại sao tôi đã nhận được các kích cỡ khác nhau trong phiên debug của tôi, là do một lỗi trong mã, trong đó lấy lĩnh vực đếm :)
khối mã đề cập được copypasted từ http://www.codeproject.com/Articles/24544/Burning-and-Erasing-CD-DVD-Blu-ray-Media-with-C-an, vì vậy chỉ trong trường hợp im gửi bài một sửa chữa nhanh chóng.
mã ban đầu:
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;
đang cố định:
discFormatData = new MsftDiscFormat2Data { Recorder = discRecorder };
fileSystemImage = new MsftFileSystemImage();
fileSystemImage.ChooseImageDefaults(discRecorder);
if (!discFormatData.MediaHeuristicallyBlank)
{
fileSystemImage.MultisessionInterfaces = discFormatData.MultisessionInterfaces;
fileSystemImage.ImportFileSystem();
}
Int64 freeMediaBlocks = fileSystemImage.FreeMediaBlocks;
Nguồn
2012-09-17 08:12:44
Tại sao không phải là WMI một lựa chọn? – PhonicUK
@ S.L. Barth, tôi không nghĩ vậy. –
@PhonicUK, kinh nghiệm quá khứ :) Tôi sẽ sử dụng nó, nếu không có cách nào khác. Tôi đã hy vọng có được những giá trị đó thông qua IMAPI, tbh. –