在Windows C / C ++中检查文件夹/文件是否被隐藏/系统

时间:2009-08-27 20:42:32

标签: windows winapi file-attributes

我正在使用C ++ / STL / Boost编写一个跨平台应用程序,我意识到它们没有提供检查文件夹或文件是否被隐藏或是否是Windows中的系统文件的方法。

在C / C ++ for Windows中执行此操作的最简单方法是什么?

理想情况下,我有一个带路径的std :: string(文件或文件夹),如果它被隐藏或者是系统文件,则会返回。最好,如果它适用于所有Windows版本。我正在使用MinGW g ++来编译它。

1 个答案:

答案 0 :(得分:5)

GetFileAttributes适用于此。

它需要一个文件或目录的路径作为参数,并返回一组标志,包括FILE_ATTRIBUTE_HIDDEN和FILE_ATTRIBUTE_SYSTEM。

DWORD attributes = GetFileAttributes(path);
if (attributes & FILE_ATTRIBUTE_HIDDEN) ...

if (attributes & FILE_ATTRIBUTE_SYSTEM) ...