Windows API 第15篇 GetVolumeInformation 获取磁盘卷(驱动器)信息

先看定义:
BOOL GetVolumeInformation
  [IN]  LPCTSTR lpRootPathName,           // root directory  卷所在的根目录,如:"C:\\", 如果为NULL,表示当前目录
  [OUT]  LPTSTR lpVolumeNameBuffer,        // volume name buffer ,输出参数,存放卷名缓冲区
  [IN]  DWORD nVolumeNameSize,            // length of name buffer,卷名缓冲区长度
  [OUT]  LPDWORD lpVolumeSerialNumber,     // volume serial number, 卷序列号
  [OUT]  LPDWORD lpMaximumComponentLength, // maximum file name length,最大文件文件名组件长度,随文件系而变化
  [OUT]  LPDWORD lpFileSystemFlags,        // file system options ,文件系统的一些属性,通常为一些宏的组合
  [OUT]  LPTSTR lpFileSystemNameBuffer,    // file system name buffer,说明何种文件系统,例如NTFS,  FAT等
  [IN]  DWORD nFileSystemNameSize         // length of file system name buffer,文件系统缓冲区长度
);
举例说明,拿自己的C盘举例:

char szVolumeNameBuf[MAX_PATH] = {0};
   DWORD dwVolumeSerialNum;
   DWORD dwMaxComponentLength;
   DWORD dwSysFlags;
   char szFileSystemBuf[MAX_PATH] = {0};
   DWORD dwFileSystemBuf = MAX_PATH;

   BOOL bGet = GetVolumeInformationA("C:\\", 
                                     szVolumeNameBuf, 
				     MAX_PATH,
				     &dwVolumeSerialNum,
				     &dwMaxComponentLength, 
				     &dwSysFlags, 
				     szFileSystemBuf,
				     MAX_PATH);
printf("%s,  %s",szVolumeNameBuf,  szFileSystemBuf);

//最后结果: Windwos, NTFS

 

转载于:https://www.cnblogs.com/priarieNew/p/9755160.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在C语言中,要获取磁盘标名称,可以使用以下步骤: 1. 首先,需要包含Windows.h头文件,这个头文件中定义了一些用于Windows系统编程的函数和数据结构。 2. 使用GetVolumeInformation函数来获取磁盘标名称。该函数的原型如下: BOOL GetVolumeInformationA( LPCSTR lpRootPathName, LPSTR lpVolumeNameBuffer, DWORD nVolumeNameSize, LPDWORD lpVolumeSerialNumber, LPDWORD lpMaximumComponentLength, LPDWORD lpFileSystemFlags, LPSTR lpFileSystemNameBuffer, DWORD nFileSystemNameSize ); 其中,lpRootPathName是一个指向包含标的根路径的字符串,比如"C:\";lpVolumeNameBuffer是用来存放标名称的缓冲区;nVolumeNameSize是缓冲区大小;其他的参数可以传入NULL。 3. 创建一个字符数组,用来存储标名称。 4. 调用GetVolumeInformation函数,并传入磁盘根路径和字符数组作为参数。 5. 如果函数返回TRUE,表示获取标名称成功,可以通过打印字符数组的值来查看标名称。 以下是一个示例代码: ```c #include <Windows.h> #include <stdio.h> int main() { char volumeName[MAX_PATH]; char rootPath[] = "C:\\"; if (GetVolumeInformationA(rootPath, volumeName, sizeof(volumeName), NULL, NULL, NULL, NULL, 0)) { printf("磁盘标名称: %s\n", volumeName); } else { printf("无法获取磁盘标名称\n"); } return 0; } ``` 以上是用C语言获取磁盘标名称的方法。注意,在Windows系统上,不是所有的磁盘都会有标名称,所以有可能获取到的名称为空。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值