是否可以使用.NET C# 3.5读取物理磁盘的文件系统信息(例如,它是否格式化为NTFS、FAT等)?
如果可以,我应该使用哪个类来确定这一点?
是否可以使用.NET C# 3.5读取物理磁盘的文件系统信息(例如,它是否格式化为NTFS、FAT等)?
如果可以,我应该使用哪个类来确定这一点?
是的,这是可能的。查询System.IO.DriveInfo
类的DriveFormat
属性即可。
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);
}
}
我觉得你也可能对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
类的所有可用属性列表,请参见此处。
DriveInfo
函数是对这个功能的托管封装。这意味着没有多少理由去使用P/Invoke并自己调用该函数。 - Cody Gray