c++ - 读取 'Extended' 文件属性 (C++)

标签 c++ windows file properties

有没有办法仅使用 C++ 代码获取详细信息选项卡下任何文件的所有属性和值?
所有扩展文件属性:link
我见过 C# 但不是 C++ 的解决方案。 link
File properties of a png file

我已经查看了 fileapi.h 函数 GetFileAttributesA(),它让我可以访问文件属性常量,例如 FILE_ATTRIBUTE_COMPRESSED、FILE_ATTRIBUTE_READONLY...

即使是带有 GetFileExMaxInfoLevelGetFileAttributesExA() 也无法返回所有需要的信息。

if (FileAttributes & FILE_ATTRIBUTE_COMPRESSED) {
    std::cout << "File is compressed.";
}
if (FileAttributes & FILE_ATTRIBUTE_READONLY) {
    std::cout << "File is a readonly file.";
}

我认为文件属性应该有类似的东西,比如 GetFilePropertiesExA()
但目前还没有找到类似的功能。
此外,我还能够使用 WIN32_FIND_DATA 获取创建日期、修改日期和大小等信息。

最佳答案

Here是 Microsoft 的一些示例代码,用于读取/写入文件属性。它使用 WinAPI 读取文件属性。

您可以找到可用属性列表 here .

根据你想做什么,你也可以看看these PROPVARIANT 函数。例如,当您想要将属性的值存储到字符串中时。

关于c++ - 读取 'Extended' 文件属性 (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65061918/

相关文章:

python - 如何在 Windows 命令行中使用参数运行 Python 脚本

c++ - 如何用cpp中的 map 内容覆盖文件

c++ - ifstream eof 函数 (C++)

c++ - 在没有代码重复的情况下将 C 函数包装在自动对象中

c++ - 编译时 Visual Studio 2008 环境变量的使用

python - 如何为 DLL 库创建 Python 包装器

c# - C# Windows 窗体中的圆角

c++ - 如何在字符串中查找包含破折号的字符串

java - Android NDK - 在 native 函数中引用 C++ 类

c - 如何在 C 中处理位数据