VB6编程中如何获取硬盘分区信息

也许你并不了解硬盘分区信息应该包括些什么,但如果你曾经对硬盘分过区,你或许对此有所了解,在此为各位介绍一个用VB编写的获取硬盘分区信息的程序。在这个程序中,它将详细地告诉你:你的硬盘总容量、分过几个区、每个区的总容量、及现在剩余的可用容量、硬盘分区表为几位(即是FAT32还是FAT16),每个分区是几个字节……怎么样?够完整详细了吧!好的,就让我们一起来看一下吧:
  首先做准备工作:在FORM1上新建二个LABEL(LABEL1和LABEL2)一个COMMAND1命令按钮。然后输入以下代码:

Private  Declare  Function  GetDriveType Lib  " kernel32 "  Alias  " GetDriveTypeA "  (ByVal nDrive  As   String As   Long
Private  Declare  Function  GetDiskFreeSpace Lib  " kernel32 "  Alias  " GetDiskFreeSpaceA "  (ByVal lpRootPathName  As   String , lpSectorsPerCluster  As   Long , lpBytesPerSector  As   Long , lpNumberOfFreeClusters  As   Long , lpTtoalNumberOfClusters  As   Long As   Long
Private   Const  DRIVE_FIXED  =   3

Private   Sub  Form_Load()  ' 作初始化设置
    COMMAND1.Caption  =   " 测试硬盘 "
    Form1.Caption 
=   " 测试硬盘程序 "
    Label1.WordWrap 
=   True
    Label1.Caption 
=   ""
    Label2.WordWrap 
=   True
    Label2.Caption 
=   ""
End Sub

Private   Sub  COMMAND1_Click()
    
Dim  DriveNum  As   Integer
    
Dim  TempDrive  As   String
    
Dim  X  As   Long
    
For  DriveNum  =   97   To   122  Step  1   ' 检测从A-Z(盘符)
        TempDrive  =  GetDriveType( Chr $(DriveNum)  &   " :\ " )
        
Select   Case  TempDrive  ' 如是3则表示是硬盘,测试你有几个盘
             Case   3
            X 
=  GetDiskSpace( Chr $(DriveNum))  ' 调用子程序
         End   Select
    
Next  DriveNum
End Sub

Public   Function  GetDiskSpace(DrivePath  As   String )
    
Dim  Drive  As   String
    
Dim  SectorsPerCluster  As   Long
    
Dim  BytesPerSector  As   Long
    
Dim  NumberOfFreeClusters  As   Long
    
Dim  TotalClusters  As   Long
    
Dim  Check  As   Integer
    
Dim  DiskSpace
    
Dim  diskTotal
    Static AllDiskTotal 
As   Long
    Static NUM 
As   Integer
    NUM 
=  NUM  +   1    ' 分几个区的计算
    Drive  =   Left $( Trim $(DrivePath),  1 &   " :\ "
    Check 
=  GetDiskFreeSpace(Drive, SectorsPerCluster, BytesPerSector, NumberOfFreeClusters, TotalClusters)
    
If  Check  <>   0   Then
        DiskSpace 
=  SectorsPerCluster  *  BytesPerSector  *  NumberOfFreeClusters
        
' 这是一个分区磁盘剩余空间的计算公式
        DiskSpace  =  Format$(DiskSpace,  " ###,### " ' 以规定格式显示,如732,324,231
        diskTotal  =  SectorsPerCluster  *  BytesPerSector  *  TotalClusters
        
' 这是一个分区磁盘总容量的计算公式
        diskTotal  =  Format$(diskTotal,  " ###,### " )
        AllDiskTotal 
=  AllDiskTotal  +  diskTotal   ' 整个硬盘的总容量
        Label1.Caption  =   " 你的硬盘总容量为: "   &  Format$(AllDiskTotal,  " ###,### " &   " 个字节,即: "   &   Left $(AllDiskTotal,  1 &   " . "   &   Mid $(AllDiskTotal,  2 1 &   " G,一共分了 "   &  NUM  &   " 个区,其中: "
        Label2.Caption 
=  Label2.Caption  &   UCase $(DrivePath)  &   " 盘的整个容量为: "   &  diskTotal  &   " 个字节 "   &   " ,其剩余磁盘空间为: "   &  DiskSpace  &   "  个字节,磁盘已FAT "   &  SectorsPerCluster  &   " ,每个分区为: "   &  BytesPerSector  &   " 个字节。 "   &  vbCrLf  &  vbCrLf
    
End   If
End Function

  OK!现在你运行一下,你是否满意它?
  注:以上程序在中文WINDOWS98,中文VB6.0企业版中调试通过。(上海 季昭君)

你可能感兴趣的:(编程)