.NET C# 3.5 kullanarak fiziksel diskin dosya sistemi (ör. NTFS, FAT vb. Biçimlendirilmişse) hakkında bilgi okunabilir mi?Disk dosya sistemi hakkında bilgi nasıl edinilir?
Eğer öyleyse, bunu belirlemek için hangi sınıfı kullanmalıyım?
.NET C# 3.5 kullanarak fiziksel diskin dosya sistemi (ör. NTFS, FAT vb. Biçimlendirilmişse) hakkında bilgi okunabilir mi?Disk dosya sistemi hakkında bilgi nasıl edinilir?
Eğer öyleyse, bunu belirlemek için hangi sınıfı kullanmalıyım?
Evet, bu mümkündür. System.IO.DriveInfo
class'un DriveFormat
property numaralı sorgusunu sorgulayın.
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);
}
}
Ben de GetVolumeInformation
işlevinde ilginç olabilir düşünüyorum.
Ayrıca WMI kullanabilir, örneğin, bu tür bilgileri elde etmek için nesneleri [DÜZ]:
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
sınıfının Tüm kullanılabilir özelliklerinin listesi için here bkz.
'DriveInfo' işlevi bu çok işlevli etrafında yönetilen bir sarıcıdır. Yani, P/Invoke ve işlevi kendiniz çağırmak için çok az sebep var. –
@Cody Grey: Evet, haklısın, ama OP sürücü diski seri numarasını okumak isteyebilir, bildiğim kadarıyla bu DriveInfo ile mümkün değil –
Teşekkürler, işte bu! – Simon
Sanırım d.DriveFormat'ı kastettin mi? – SepehrM
@Sepehr Evet, teşekkürler. Kod örneğine ne olduğunu bilmiyorum. Bir grup rastgele alan demek istemedim, ne de "Dosya türü" demek istemedim. –