VB获取所有逻辑磁盘信息代码
来源:优易学  2011-12-10 20:07:59   【优易学:中国教育考试门户网】   资料下载   IT书店
  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

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训