[C# Helper]
Index Books FAQ Contact About Rod
[Beginning Database Design Solutions, Second Edition]

[Beginning Software Engineering, Second Edition]

[Essential Algorithms, Second Edition]

[The Modern C# Challenge]

[WPF 3d, Three-Dimensional Graphics with WPF and C#]

[The C# Helper Top 100]

[Interview Puzzles Dissected]

[C# 24-Hour Trainer]

[C# 5.0 Programmer's Reference]

[MCSD Certification Toolkit (Exam 70-483): Programming in C#]

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.

© 2009-2023 Rocky Mountain Computer Consulting, Inc. All rights reserved.