VB取磁盘序列号卷标和文件系统类型

2026-05-07
声明:

  Private Declare Function GetVolumeInformation Lib "kernel32.dll" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Integer, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long

  代码:

  Function GetSerialNumber(sRoot As String) As Long

  Dim lSerialNum As Long

  Dim R As Long

  Dim sTemp1 As String, sTemp2 As String

  strLabel = String$(255, Chr$(0))

  注释: 磁盘卷标

  strType = String$(255, Chr$(0))

  注释: 文件系统类型 一般为 FAT

  R = GetVolumeInformation(sRoot, strLabel, Len(strLabel), lSerialNum, 0, 0, strType, Len(strType))

  GetSerialNumber = lSerialNum

  注释:在 strLabel 中为 磁盘卷标

  注释:在 strType 中为 文件系统类型

  End Function

  用法:

  当驱动器不存在时,函数返回 0。如果是个非根目录,也将返回 0:

  lSerial = GetSerialNumber("c:\")