我正在使用C ++ / STL / Boost编写一个跨平台应用程序,我意识到它们没有提供检查文件夹或文件是否被隐藏或是否是Windows中的系统文件的方法。
在C / C ++ for Windows中执行此操作的最简单方法是什么?
理想情况下,我有一个带路径的std :: string(文件或文件夹),如果它被隐藏或者是系统文件,则会返回。最好,如果它适用于所有Windows版本。我正在使用MinGW g ++来编译它。
答案 0 :(得分:5)
GetFileAttributes适用于此。
它需要一个文件或目录的路径作为参数,并返回一组标志,包括FILE_ATTRIBUTE_HIDDEN和FILE_ATTRIBUTE_SYSTEM。
DWORD attributes = GetFileAttributes(path);
if (attributes & FILE_ATTRIBUTE_HIDDEN) ...
if (attributes & FILE_ATTRIBUTE_SYSTEM) ...