3

C++/STL/Boost を使用してクロス プラットフォーム アプリケーションを作成していますが、フォルダーまたはファイルが非表示になっているか、Windows のシステム ファイルであるかを確認する方法が提供されていないことに気付きました。

C/C++ for Windows でこれを行う最も簡単な方法は何ですか?

理想的には、パス (ファイルまたはフォルダーのいずれか) を含む std::string があり、それが非表示またはシステム ファイルである場合に返されます。すべての Windows バージョンで動作する場合に最適です。これもコンパイルするために MinGW g++ を使用しています。

4

1 に答える 1

6

これにはGetFileAttributesが機能します。

ファイルまたはディレクトリへのパスをパラメーターとして取り、FILE_ATTRIBUTE_HIDDEN および FILE_ATTRIBUTE_SYSTEM を含む一連のフラグを返します。

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

if (attributes & FILE_ATTRIBUTE_SYSTEM) ...
于 2009-08-27T20:43:26.233 に答える