2011-05-24 21 views
8

.NET C# 3.5 का उपयोग कर भौतिक डिस्क के फाइल सिस्टम के बारे में जानकारी पढ़ना संभव है (उदा।, अगर इसे NTFS, FAT, आदि के रूप में स्वरूपित किया गया है)?डिस्क फाइल सिस्टम के बारे में जानकारी कैसे प्राप्त करें?

यदि हां, तो मुझे यह निर्धारित करने के लिए किस वर्ग का उपयोग करना चाहिए?

उत्तर

11

हां, यह संभव है। System.IO.DriveInfo class के DriveFormat property क्वेरी करें।

public static void Main() 
{ 
    DriveInfo[] allDrives = DriveInfo.GetDrives(); 

    foreach (DriveInfo d in allDrives) 
    { 
     Console.WriteLine("Drive {0}", d.Name); 
     Console.WriteLine("Type: {0}", d.DriveFormat); 
    } 
} 
+0

धन्यवाद, यह है! – Simon

+0

मुझे लगता है कि आपका मतलब था 'डी। ड्राइवफॉर्मैट' सही? – SepehrM

+0

@ सेपेर हां, धन्यवाद। मुझे नहीं पता कि कोड नमूने के साथ क्या हुआ। मेरा मतलब यादृच्छिक रिक्त स्थान का गुच्छा नहीं था, न ही मेरा मतलब "फ़ाइल प्रकार" था। –

2

मैं तुम्हें भी GetVolumeInformation समारोह में दिलचस्प हो सकता है लगता है।

[संपादित करें]
तुम भी WMI का उपयोग कर सकते उदाहरण के लिए, इस तरह की जानकारी प्राप्त करने के लिए वस्तुओं:

using System.Management; 
..... 
ManagementObject disk = new ManagementObject("win32_logicaldisk.deviceid=\"c:\""); 
disk.Get(); 
MessageBox.Show(disk["FreeSpace"] + " bytes"); // Displays disk free space 
MessageBox.Show(disk["VolumeName"].ToString()); // Displays disk label 
MessageBox.Show(disk["FileSystem"].ToString()); // Displays File system type 

Win32_LogicalDisk वर्ग के सभी उपलब्ध संपत्तियों की सूची के लिए देखें here

+0

'ड्राइवइन्फो' फ़ंक्शन इस फ़ंक्शन के आस-पास एक प्रबंधित रैपर है। इसका मतलब है कि पी/आमंत्रण के लिए वास्तव में बहुत कम कारण है और फ़ंक्शन को स्वयं कॉल करें। –

+0

@ कोडी ग्रे: हाँ, आप सही हैं, लेकिन ओपी डिस्क सीरियल नंबर पढ़ना चाह सकता है, जहां तक ​​मुझे पता है कि ड्राइवइन्फो के साथ यह संभव नहीं है –

संबंधित मुद्दे