Mega Code Archive

 
Categories / VisualBasic Script / File Path
 

Returns the drive letter using an index

Private Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long Function DriveName(index As Integer) As String     Dim Buffer As String * 255     Dim BuffLen As Long     Dim TheDrive As String     Dim DriveCount As Integer         BuffLen = GetLogicalDriveStrings(Len(Buffer), Buffer)     TheDrive = ""     DriveCount = 0     For i = 1 To BuffLen         If Asc(Mid(Buffer, i, 1)) <> 0 Then _           TheDrive = TheDrive & Mid(Buffer, i, 1)         If Asc(Mid(Buffer, i, 1)) = 0 Then 'null separates drives             DriveCount = DriveCount + 1             If DriveCount = index Then                 DriveName = UCase(Left(TheDrive, 1))                 Exit Function             End If             TheDrive = ""         End If     Next i End Function Sub Main()   Debug.Print DriveName(3) End Sub