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

输出如下:

相关推荐
知识分享小能手7 小时前
C++ 学习教程,从入门到精通,string类和标准模板库 — 完整知识点详解(16)
开发语言·c++·学习
无忧.芙桃7 小时前
位图妙用:512MB 实现 40 亿整数的存在性查询
c语言·c++·面试·哈希算法
ShineWinsu7 小时前
对于Redis:Steam、Geospatial、Hyperloglog、Bitmap、Bitfield类型的解析
数据库·c++·redis·分布式·缓存·面试·zset
朝朝辞暮i7 小时前
C++ 第 31C 课:Subscriber 到底是什么
开发语言·c++·算法
笨笨努力中7 小时前
2002年Windows XP系统下载视频资源迁移云盘
windows
殷色玫瑰8 小时前
C++ string类详解:常用接口、字符串操作与模拟实现
java·linux·c语言·开发语言·数据结构·c++
李游Leo8 小时前
HarmonyOS 7 + Spatial Recon Kit-C++:3DGS 高斯参数的非有限值隔离与可渲染性门禁【鸿蒙心迹】
开发语言·c++·3d·harmonyos
jimy19 小时前
基类没有虚析构函数,基类指针删除派生类对象,行为是未定义的
开发语言·c++
l1t9 小时前
修复WSL CreateInstance/E_UNEXPECTED和 mounted read-only 错误
linux·windows·wsl
xlq223229 小时前
全面复习2
c++