Проверка, скрыта ли папка / файл / система в Windows C / C ++ - PullRequest
3 голосов
/ 28 августа 2009

Я пишу кроссплатформенное приложение с использованием C ++ / STL / Boost, и я понял, что они не предоставляют способ проверить, является ли папка или файл скрытым или системным файлом в Windows.

Какой самый простой способ сделать это в C / C ++ для Windows?

В идеале у меня есть std :: string с путем (либо к файлу, либо к папке), и он возвращается, если он скрыт или является системным файлом. лучше всего, если он работает во всех версиях Windows. Я также использую MinGW g ++ для компиляции.

1 Ответ

5 голосов
/ 28 августа 2009

GetFileAttributes будет работать для этого.

Он принимает путь к файлу или каталогу в качестве параметра и возвращает набор флагов, включая FILE_ATTRIBUTE_HIDDEN и FILE_ATTRIBUTE_SYSTEM.

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

if (attributes & FILE_ATTRIBUTE_SYSTEM) ...
...