【发布时间】:2017-05-10 14:43:36
【问题描述】:
我正在开发一个程序,该程序应该从 std::vector 中选择的目录中检索所有文件的属性。
这段代码显示了我如何获取文件属性:
DWORD attr_flags = GetFileAttributes(file_path);
if (attr_flags == INVALID_FILE_ATTRIBUTES) {
std::cout << "Invalid file attributes." << std::endl;
return;
}
并且代码会像这样解析检索到的标志:
if (attr_flags & FILE_ATTRIBUTE_ARCHIVE) {
attrs.push_back(defines::Attributes::kArchive);
attr_flags &= ~FILE_ATTRIBUTE_ARCHIVE;
}
if (attr_flags & FILE_ATTRIBUTE_COMPRESSED) {
attrs.push_back(defines::Attributes::kCompressed);
attr_flags &= ~FILE_ATTRIBUTE_COMPRESSED;
}
/* etc... */
所以,毕竟我将结果打印到控制台并得到这个:
谁能告诉我,为什么所有文件(甚至不是存档)都有存档属性?
P.S:MSDNtell's
FILE_ATTRIBUTE_ARCHIVE 32 (0x20)
作为存档文件或目录的文件或目录。应用程序通常使用此属性来标记要备份或删除的文件。
【问题讨论】:
标签: c++ c windows winapi file-attributes