Для получения информации о дисках в системе нужно использовать класс DriveInfo, который предоставляет все необходимые сведения о диске: общий объем, свободное место, тип файловой системы и т.д.
using System.IO;
// Создаем список дисков
private void Form1_Load(object sender, EventArgs e)
{
foreach (DriveInfo di in DriveInfo.GetDrives())
{
cboDrive.Items.Add(di.Name);
cboDrive.SelectedIndex = 0;
}
}
// Выводим информацию о выбранном диске
private void cboDrive_SelectedIndexChanged(object sender, EventArgs e)
{
string drive_letter = cboDrive.Text.Substring(0, 1);
DriveInfo di = new DriveInfo(drive_letter);
lblIsReady.Text = di.IsReady.ToString();
lblDriveType.Text = di.DriveType.ToString();
lblName.Text = di.Name;
lblRootDirectory.Text = di.RootDirectory.Name;
if (di.IsReady)
{
lblDriveFormat.Text = di.DriveFormat;
lblAvailableFreeSpace.Text = di.AvailableFreeSpace.ToString();
lblTotalFreeSize.Text = di.TotalFreeSpace.ToString();
lblTotalSize.Text = di.TotalSize.ToString();
lblVolumeLabel.Text = di.VolumeLabel;
}
else
{
lblDriveFormat.Text = "";
lblAvailableFreeSpace.Text = "";
lblTotalFreeSize.Text = "";
lblTotalSize.Text = "";
lblVolumeLabel.Text = "";
}
}
Примечание: для получения серийного номера диска нужно использовать функцию Windows API GetVolumeInformation.