GetVolumeInformation函数使用记录

函数原型

BOOL GetVolumeInformationA(

[in, optional] LPCSTR lpRootPathName,

[out, optional] LPSTR lpVolumeNameBuffer,

[in] DWORD nVolumeNameSize,

[out, optional] LPDWORD lpVolumeSerialNumber,

[out, optional] LPDWORD lpMaximumComponentLength,

[out, optional] LPDWORD lpFileSystemFlags,

[out, optional] LPSTR lpFileSystemNameBuffer,

[in] DWORD nFileSystemNameSize

);

在windows中有两种

普通:GetVolumeInformationA

宽字符版:GetVolumeInformationW

这里我以普通GetVolumeInformationA为例;

先看官方文档解释

官方文档:GetVolumeInformationA 函数 (fileapi.h) - Win32 apps | Microsoft Learn

文档不短,其大概意思就是根据传入的盘符路径,获取盘符的各种信息;

接下来就是测试这个函数的功能;

直接上代码:

环境:vsstudio2019

cpp 复制代码
#include <windows.h>
#include <stdio.h>

int main() {
    char volumeName[MAX_PATH];
    char fileSystemName[MAX_PATH];
    DWORD serialNumber;
    DWORD maxComponentLength;
    DWORD fileSystemFlags;

    // 获取F盘的信息(注意:其中的F填你自己要查询的盘符)
    if (!GetVolumeInformationA("F:\\", volumeName, MAX_PATH, &serialNumber, &maxComponentLength, &fileSystemFlags, fileSystemName, MAX_PATH)) {
        printf("获取F盘信息失败,错误码:%d\n", GetLastError());
        return 1;
    }

    // 输出F盘的相关信息
    printf("盘符F的卷标名称:%s\n", volumeName);
    printf("盘符F的序列号:%lu\n", serialNumber);
    printf("盘符F的文件系统名称:%s\n", fileSystemName);
    printf("盘符F的最大组件长度:%lu\n", maxComponentLength);
    printf("盘符F的文件系统标志:%lu\n", fileSystemFlags);

    return 0;
}

输出如下:

相关推荐
若雨叶1 小时前
parallelStream并行流使用踩坑,集合安全
java·开发语言·windows
Watermelon Y2 小时前
【C++】多线程
c++
南桥几晴秋2 小时前
【算法刷题指南】优先级队列
数据结构·c++·算法·优先队列·大堆·小堆
因特麦克斯2 小时前
C++小问题
c++
C++忠实粉丝3 小时前
计算机网络之传输层协议UDP
linux·网络·c++·网络协议·计算机网络·udp
易我数据恢复大师3 小时前
Windows 10电脑无声问题的全面解决方案
windows·windows10·电脑故障·电脑声音
爱穿西装的C先生5 小时前
C++学习日记---第16天
开发语言·c++·学习·程序人生·蓝桥杯
烟雨迷5 小时前
类和对象下
开发语言·c++·学习
XLYcmy5 小时前
分布式实验一
linux·c++·分布式·网络安全·操作系统·c·socket
_小柏_5 小时前
C/C++基础知识复习(36)
c语言·c++