Title: Get information about a disk drive such as size and available space in C#
This example returns information about disk drives including:
- Name
- Total size
- Total free size
- Available free space
- Format
- Type (fixed or CD ROM
- Is ready?
- Root directory
- Volume label
The program uses objects in the System.IO namespace, so it includes the following statement to make using that namespace easier.
using System.IO;
When the program starts, it uses the following code to add the drives available on the system to the ComboBox named cboDrive.
// Make a list of drives.
private void Form1_Load(object sender, EventArgs e)
{
foreach (DriveInfo di in DriveInfo.GetDrives())
{
cboDrive.Items.Add(di.Name);
cboDrive.SelectedIndex = 0;
}
}
When you select a drive, the following code displays information about it.
// Display information about the selected drive.
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 = "";
}
}
This code makes a DriveInfo object representing the selected drive and then uses that object's properties to learn about the drive. The only trick here is that the code checks the drive's IsReady property before accessing some of its other properties. Some of those properties throw exceptions if the drive isn't ready. (For example, if the drive is an empty DVD drive.)
Download the example to experiment with it and to see additional details.
|