In C# how do you detect is a specific drive is a Hard Drive, Network Drive, CDRom, or floppy?
Asked
Active
Viewed 5,006 times
3 Answers
18
The method GetDrives() returns a DriveInfo class which has a property DriveType that corresponds to the enumeration of System.IO.DriveType:
public enum DriveType
{
Unknown, // The type of drive is unknown.
NoRootDirectory, // The drive does not have a root directory.
Removable, // The drive is a removable storage device,
// such as a floppy disk drive or a USB flash drive.
Fixed, // The drive is a fixed disk.
Network, // The drive is a network drive.
CDRom, // The drive is an optical disc device, such as a CD
// or DVD-ROM.
Ram // The drive is a RAM disk.
}
Here is a slightly adjusted example from MSDN that displays information for all drives:
DriveInfo[] allDrives = DriveInfo.GetDrives();
foreach (DriveInfo d in allDrives)
{
Console.WriteLine("Drive {0}, Type {1}", d.Name, d.DriveType);
}

Ray Hayes
- 14,896
- 8
- 53
- 78
-
FYI `DriveType` returns `DriveType.Fixed' for external USB hard drives. – Karel Frajták Jun 29 '17 at 12:10
4
DriveInfo.DriveType should work for you.
DriveInfo[] allDrives = DriveInfo.GetDrives();
foreach (DriveInfo d in allDrives)
{
Console.WriteLine("Drive {0}", d.Name);
Console.WriteLine(" File type: {0}", d.DriveType);
}

GEOCHET
- 21,119
- 15
- 74
- 98