ठीक है, तो मेरे प्रश्न का संक्षिप्त उत्तर यह है: कोई सुरक्षित हो सकता है मान लीजिए, डीवीडी/बीडी डिस्क = 2048 बाइट्स के लिए उस क्षेत्र का आकार।
कारण क्यों मैं अपने डिबग सत्र के दौरान अलग-अलग आकार हो रही थी, कोड में कोई त्रुटि है, जो क्षेत्रों गिनती :) लिया गया की वजह से था
उल्लेख कोड ब्लॉक http://www.codeproject.com/Articles/24544/Burning-and-Erasing-CD-DVD-Blu-ray-Media-with-C-an से copypasted किया गया था, तो बस मामले im पोस्टिंग में एक त्वरित फिक्स।
मूल कोड:
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;
स्रोत
2012-09-17 08:12:44
क्यों WMI एक विकल्प नहीं है? – PhonicUK
@ एसएल। बार्थ, मैं ऐसा नहीं सोचता। –
@PonicUK, पिछले अनुभव :) यदि कोई अन्य तरीका नहीं है, तो मैं इसका उपयोग करूंगा। मैं उन मूल्यों को IMAPI, tbh के माध्यम से प्राप्त करने की उम्मीद कर रहा था। –