先來談談這兩個函數。GetVolumeInformation函數用于獲取與一個磁盤卷有關的信息,包括磁盤卷標、磁盤的序列號、文件的全路徑名中“\”與“\”之間部分的長度、文件系統的名稱以及文件系統的某些特性。GetDiskFreeSpace函數用于獲取與一個磁盤組織有關的信息,以及了解剩余空間的容量,包括磁盤上的總簇數、剩余簇數、一個簇內的扇區數和一個扇區內的字節數。
接下來看看具體的例子。
進入VB中,在窗體上加入一個驅動器列表框(DriveListBox)和一個列表框(ListBox),然后加入以下的腳本:
Option Explicit
Private Declare Function GetVolumeInformation
Lib "kernel32" Alias
"GetVolumeInformationA" (ByVal lpRootPathName As
String, ByVal lpVolumeNameBuffer As
String, ByVal nVolumeNameSize As Long,
lpVolumeSerialNumber As Long,
lpMaximumComponentLength As Long,
lpFileSystemFlags As Long, ByVal
lpFileSystemNameBuffer As String,
ByVal nFileSystemNameSize As Long) As Long
Private Declare Function GetDiskFreeSpace
Lib "kernel32" Alias "GetDiskFreeSpaceA"
(ByVal lpRootPathName As String, lpSectorsPerCluster
As Long, lpBytesPerSector As Long,
lpNumberOfFreeClusters As Long,
lpTotalNumberOfClusters As Long) As Long
Private Const FS_CASE_IS_PRESERVED = &H2
Private Const FS_CASE_SENSITIVE = &H1
Private Const FS_UNICODE_STORED_ON_
DISK = &H4
Private Const FS_PERSISTENT_ACLS = &H8
Private Const FS_FILE_COMPRESSION = &H10
Private Const FS_VOL_IS_COMPRESSED =
&H8000
Private Sub Drive1_Change()
Dim Volume As String, SysName As String
Dim SerialNum As Long, SysFlags As Long,
ComponentLength As Long, Res As Long
Dim SectorsPerCluster As Long, BytesPerSector
As Long, NumberOfFreeClustors As
Long, TotalNumberOfClustors As Long
Dim FreeBytes As Long, TotalBytes As Long,
PercentFree As Long, Dl As Long
Dim DrvName As String
List1.Clear
Volume = String(256, 0)
SysName = String(256, 0)
DrvName = Left(Drive1.Drive, 2) & "\"
Res = GetVolumeInformation(DrvName,
Volume, 255, SerialNum, _
ComponentLength, SysFlags, SysName, 255)
If Res = 0 Then
List1.AddItem "不能得到磁盤信息"
Else
List1.AddItem "卷標: " & Trim(Volume)
List1.AddItem "序列號: " & SerialNum
List1.AddItem "成分長度: " & ComponentLength
List1.AddItem "文件系統: " & Trim(SysName)
Dl = GetDiskFreeSpace(DrvName,
SectorsPerCluster, BytesPerSector,
NumberOfFreeClustors, TotalNumberOfClustors)
List1.AddItem "每簇中扇區數: "
& Format(SectorsPerCluster, "#,0")
List1.AddItem "每扇區中字節數: "
& Format(BytesPerSector, "#,0")
List1.AddItem "總簇數: "
& Format(TotalNumberOfClustors, "#,0")
List1.AddItem "剩余簇數: "
& Format(NumberOfFreeClustors, "#,0")
TotalBytes = TotalNumberOfClustors *
SectorsPerCluster * BytesPerSector
List1.AddItem "總字節數:
" & Format(TotalBytes, "#,0")
FreeBytes = NumberOfFreeClustors
* SectorsPerCluster * BytesPerSector
List1.AddItem "剩余字節數: "
& Format(FreeBytes, "#,0")
If SysFlags And FS_CASE_IS_PRESERVED Then
List1.AddItem "文件名的大小寫記錄于文件系統"
End If
If SysFlags And FS_CASE_SENSITIVE Then
List1.AddItem "文件名要區分大小寫"
End If
If SysFlags And FS_UNICODE_STORED_
ON_DISK Then
List1.AddItem "文件名保存為 Unicode 格式"
End If
If SysFlags And FS_PERSISTENT_ACLS Then
List1.AddItem "文件系統支持文件的訪問
控制列表(ACL)安全機制"
End If
If SysFlags And FS_FILE_COMPRESSION Then
List1.AddItem "文件系統支持逐文件地進行文件壓縮"
End If
If SysFlags And FS_VOL_IS_COMPRESSED Then
List1.AddItem "整個磁盤卷都是壓縮的"
End If
End If
End Sub
Private Sub Form_Load()
Call Drive1_Change
End Sub
運行后,選擇驅動器列表框中的不同驅動器,列表框中就會顯示出該驅動器的相應信息。以上程序在VB5.0、VB6.0及WINDOWS 98中運行通過。
轉載自計算機世界日報 (文/嚴冬)
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/
領測軟件測試網最新更新
關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
技術支持和業務聯系:info@testage.com.cn 電話:010-51297073
版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
技術支持和業務聯系:info@testage.com.cn 電話:010-51297073
老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月