Cómo usar VB6 para obtener la letra de la unidad de disco USB y obtener la capacidad física del disco USB
Función de declaración privada GetDiskFreeSpaceEx Lib "kernel32" alias "GetDiskFreeSpaceExA" (ByVal lpDirectoryName As String, ByRef lpFreeBytesAvailableToCaller As Long, ByRef lpTotalNumberOfBytes As Long, ByRef lpTotalNumberOfFreeBytes As Long) As Long
Función de declaración privada GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
Declaración privada Función GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive como cadena) mientras
Dim BytesFreeToCalller mientras, TotalBytes mientras
Dim TotalFreeBytes mientras, TotalBytesUsed mientras
Private Sub Timer1_ Timer()
Dim iscd As Boolean
Dim StrDrive As String 'Cadena de disco (A:\C:\D:\.. .)
Dim DriveID As String 'Drive ID (por ejemplo: A:\)
iscd = False
List1.Clear
StrDrive = String(100, Chr$(0)) 'Inicializa la cadena de letras de la unidad
Llama a GetLogicalDriveStrings(100, StrDrive) 'Devuelve la cadena de la unidad de disco
Dim i As Integer
'Devuelva las letras de la unidad de disco a la matriz
Para i = 5 a 100 Paso 4 'Tenga en cuenta que aquí son 4
DriveID = Mid( StrDrive, i, 3 ) 'Enumerar unidades de disco
Si GetDriveType(DriveID) = 2 Entonces
s = Mid(StrDrive, i, 3)
Llamar a GetDiskFreeSpaceEx( s, BytesFreeToCalller, TotalBytes, TotalFreeBytes)
List1.AddItem "Rem
Disco móvil " & s & " Capacidad del disco (MB): " & Formato(CDbl((TotalBytes / 1024) / 1024), " ###, ###, ### 0.00") & " Espacio libre (MB) : " & Formato(CDbl((TotalFreeBytes / 1024) / 1024), "###, ###, ###0.00") & " Espacio usado (MB): " Formato (CDbl((TotalBytes - TotalFreeBytes) / 1024) / 1024), "###, ###, ###0.00")
' Salir para
Finalizar si
Si DriveID = Chr$(0) amp; Chr(0) amp; Chr(0) Luego salga por ' No hay unidad de disco, ahora salga del bucle
Siguiente i
End Sub