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;
}

输出如下:

相关推荐
光头闪亮亮8 分钟前
Fyne ( go跨平台GUI )项目实战-项目开发必备基础知识(中)
android·c++·go
光头闪亮亮17 分钟前
Fyne ( go跨平台GUI )项目实战-项目开发必备基础知识(下)
android·c++·go
阿扬ABCD42 分钟前
ipmitool的Windows版本编译
windows·驱动开发
_wyt0011 小时前
洛谷 P7912 [CSP-J 2021] 小熊的果篮 题解
c++·队列
choumin2 小时前
创建型模式——原型模式
c++·设计模式·原型模式·创建型模式
code_pgf2 小时前
C/C++ 常用容器功能汇总
c语言·开发语言·c++
王维同学3 小时前
Credential Provider、Filter 与 PLAP 的 CLSID 枚举
c++·windows·安全·注册表
Carlgood-Minecraft4 小时前
随机分位系统破解版 (BPS)Version-B4.2
c++
choumin4 小时前
结构型模式——装饰模式
c++·设计模式·装饰模式·结构型模式
寒水馨5 小时前
Windows下载、安装 Codex CLI(附安装包codex-x86_64-pc-windows-msvc.exe)
windows·rust·codex·终端工具·自动化编程·codex cli·ai编码代理