您的位置:首页 > 其它

利用API函数 GetVolumeInformation 获取盘区信息

2006-08-16 08:10 603 查看
*利用API函数:GetVolumeInformation 获取盘区信息
delphi_database (其中'卷序列号'就是每个分区的序列号)

Clea
#Define FILE_CASE_SENSITIVE_SEARCH 1
#Define FILE_CASE_PRESERVED_NAMES 2
#Define FILE_UNICODE_ON_DISK 4
#Define FILE_PERSISTENT_ACLS 8
#Define FILE_FILE_COMPRESSION 16
#Define FILE_VOLUME_IS_COMPRESSED 32768 && &H8000

Declare INTEGER GetLastError IN kernel32
Declare SHORT GetVolumeInformation IN kernel32;
STRING lpRootPathName,;
STRING @ lpVolumeNameBuffer,;
INTEGER nVolumeNameSize,;
INTEGER @ lpVolumeSerialNumber,;
INTEGER @ lpMaximumComponentLength,;
INTEGER @ lpFlags,;
STRING @ lpFileSystemNameBuffer,;
INTEGER nFileSystemNameSize
lpRootPathName = "C:/" && 驱动器和目录名,此处可换成其他分区
lpVolumeNameBuffer = SPACE(256) && lpVolumeName 返回缓存
nVolumeNameSize = 256 && lpVolumeNameBuffer 的大小
lpVolumeSerialNumber = 0 && lpVolumeSerialNumber 缓存
lpMaximumComponentLength = 256
lpFileSystemFlags = 0
lpFileSystemNameBuffer = SPACE(256)
nFileSystemNameSize = 256

lnResult = GetVolumeInformation(@lpRootPathName, @lpVolumeNameBuffer, ;
nVolumeNameSize, @lpVolumeSerialNumber, ;
@lpMaximumComponentLength, @lpFileSystemFlags, ;
@lpFileSystemNameBuffer, nFileSystemNameSize)

If lnResult = 1
?"驱动器和目录名 : " + ALLTRIM(lpRootPathName)
?"卷名 : " + LEFT(ALLTRIM(lpVolumeNameBuffer),LEN(ALLTRIM(lpVolumeNameBuffer))-1)
?"卷名最大字符数 : " + ALLTRIM(STR(nVolumeNameSize))
?"卷序列号 : " + ALLTRIM(STR(lpVolumeSerialNumber))
?"文件/目录名的最大字符数 : " + ALLTRIM(STR(lpMaximumComponentLength))
?"文件系统标记 : " + ALLTRIM(STR(lpFileSystemFlags))
?"文件系统类型 : " + LEFT(ALLTRIM(lpFileSystemNameBuffer), LEN(ALLTRIM(lpFileSystemNameBuffer))-1)
?"文件系统名大小 : " + ALLTRIM(STR(nFileSystemNameSize))
Else
? "运行错误号: ", GetLastError()
Endif
Clea dlls
Retu
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐