Attribute VB_Name = "ModuleDiskInfo" Option Explicit Private Const DRIVE_CDROM = 5 Private Const DRIVE_FIXED = 3 Private Const DRIVE_RAMDISK = 6 Private Const DRIVE_REMOTE = 4 Private Const DRIVE_REMOVABLE = 2 Private Declare Function GetLogicalDriveStrings()Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long Private Declare Function GetDriveType()Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long Private Declare Function GetDiskFreeSpaceEx()Function GetDiskFreeSpaceEx Lib "kernel32" Alias "GetDiskFreeSpaceExA" (ByVal lpRootPathName As String, lpFreeBytesAvailableToCaller As Currency, lpTotalNumberOfBytes As Currency, lpTotalNumberOfFreeBytes As Currency) As Long Private Type DiskInfomation RootPath As String mDiskType As Byte Size As Currency End Type Private Sub GetDriveStrings()Sub GetDriveStrings(ByRef DriveStrings() As String) Dim i As Long, DirverL As String i = GetLogicalDriveStrings(0, DirverL) DirverL = Space$(i) i = GetLogicalDriveStrings(i, DirverL) DriveStrings() = Split(Left(DirverL, Len(DirverL) - 2), Chr(0)) End Sub Private Function GetDiskSpace()Function GetDiskSpace(DiskPath As String) As Currency Dim tmpSize As Currency Call GetDiskFreeSpaceEx(DiskPath, tmpSize, GetDiskSpace, tmpSize) GetDiskSpace = GetDiskSpace * 10000 End Function Private Sub GetDiskInfo()Sub GetDiskInfo(ByRef DiskInfo() As DiskInfomation) Dim Str() As String Call GetDriveStrings(Str()) Dim i As Integer ReDim DiskInfo(UBound(Str())) For i = 0 To UBound(Str()) DiskInfo(i).RootPath = Str(i) DiskInfo(i).mDiskType = GetDriveType(Str(i)) DiskInfo(i).Size = GetDiskSpace(Str(i)) Next i End Sub Private Function FindDisk()Function FindDisk(AlltheDisk() As DiskInfomation, TheSearchOne As DiskInfomation) As Boolean Dim i As Byte For i = 0 To UBound(AlltheDisk()) If AlltheDisk(i).mDiskType = TheSearchOne.mDiskType _ And AlltheDisk(i).RootPath = TheSearchOne.RootPath _ And AlltheDisk(i).Size = TheSearchOne.Size Then FindDisk = True Exit Function End If Next i FindDisk = False End Function