• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    VB中獲取邏輯磁盤的信息

    發布: 2007-5-25 09:19 | 作者: jadedrip | 來源: 互聯網 | 查看: 29次 | 進入軟件測試論壇討論

    領測軟件測試網 我們在編程的時候有時會需要得到系統中邏輯磁盤的一些信息,如磁盤卷標、磁盤序列號、空間大小、剩余空間等,這些信息直接使用VB提供的函數顯然是無法得到的。但是,借助于VB對WINDOWS API函數的支持,使用GetVolumeInformation和 GetDiskFreeSpace這兩個API函數,我們就可以很容易的得到磁盤的相關信息。

      先來談談這兩個函數。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

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>