#c# #filesystems #.net
#c# #файловые системы #.net
Вопрос:
Возможно ли прочитать информацию о файловой системе физического диска (например, если он отформатирован как NTFS, FAT и т.д.) С помощью .NET C # 3.5?
Если да, то какой класс мне следует использовать для определения этого?
Ответ №1:
Да, это возможно. Запросите DriveFormat
свойство System.IO.DriveInfo
класса.
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);
}
}
Комментарии:
1. @Sepehr Да, спасибо. Я не знаю, что случилось с примером кода. Я не имел в виду кучу случайных пробелов и не имел в виду «Тип файла».
Ответ №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
класса смотрите здесь.
Комментарии:
1.
DriveInfo
Функция представляет собой управляемую оболочку вокруг этой самой функции. Это означает, что действительно мало причин для P / Invoke и вызова функции самостоятельно.2. @Cody Gray: Да, вы правы, но OP может захотеть прочитать серийный номер диска, насколько я знаю, это невозможно с DriveInfo