I needed to determine the drive letter of the DVD drive on a PC so that each user did not have to change the .config file to designate the drive letter.
I found that the
System.IO.DriveInfo.GetDrives() method did not return the optical drive when the drive was not ready.
I searched the framework documentation and found another method that returned drive letters.
This example uses the
System.Io.Directory.GetLogicalDrives() method to retrieve the configured drive letters.
Then, it uses the
System.IO.DriveInfo(driveName) method to return a
DriveInfo object. The
DriveInfo object has a
Using the code
The simple example can be inserted into a VB.NET program or converted to C# using one of the free code
converters (e.g., developerFusion Convert VB.NET to C#[^]).
Dim strDVD as String
Dim Drives As String() = System.IO.Directory.GetLogicalDrives
For Each strDrive As String In Drives
Dim di As System.IO.DriveInfo = _
New System.IO.DriveInfo(strDrive.Substring(0, 1).ToUpper)
If di.DriveType = System.IO.DriveType.CDRom Then
strDVD = strDrive.Substring(0, 2)
Catch ex As Exception
MsgBox("Error while trying to determine the DVD drive letter" & vbNewLine & vbNewLine & _
ex.Message, MsgBoxStyle.Exclamation, "DVD Drive")
- Version 1: July 28, 2013.