VB获取所有逻辑磁盘信息代码计算机等级考试

文章作者 100test 发表时间 2010:01:01 10:53:08
来源 100Test.Com百考试题网


  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

  编辑特别推荐:

  全国计算机等级考试二级VB模拟试题及答案解析



相关文章


VBCreateProcess模块计算机等级考试
VBBase64编码类代码计算机等级考试
VBBase64编解码计算机等级考试
VB进程权限提升代码计算机等级考试
VB获取所有逻辑磁盘信息代码计算机等级考试
VB高效连接字符串代码计算机等级考试
VB创建可等待进程并获取Stdout输出的代码计算机等级考试
VB关闭计算机代码计算机等级考试
VB内存分配与流读写代码计算机等级考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛