私は間の違いを知りたいです:
file.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY
と :
file.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY
最初のものを使用すると、より多くのファイルを取得します。
FILE_ATTRIBUTE_DIRECTORYはファイル属性定数でfile.dwFileAttributesあり、WIN32_FIND_DATAWindowsAPIの構造体メンバーです。
ルールは単純です:
==。&。の場合dwFileAttributes、ドキュメントには次のように記載されています。
ファイルのファイル属性。可能な値とその説明については、...を参照してください。
複数形の使用は、私の箇条書きの2番目が適用されることを示しています。
&はビット単位の演算==ですが、実際の比較です。
ビットごとのAND
#define FLAG_1 1
#define FLAG_2 2
#define FLAG_3 4
#define FLAG_4 8
/* Check if FLAG_2 or FLAG_3 is enabled in flags */
if ((flags & FLAG_2) || (flags & FLAG_3)) {
...
}
ビット単位のANDおよびその他の基本的なビット演算に関するリソースはたくさんあります。Wikiリンク。
定期的な比較
#define FLAG_1 1
#define FLAG_2 2
#define FLAG_3 4
#define FLAG_4 8
/* Check if flags is *equal* to FLAG_2 value */
if (flags == FLAG_2) {
...
}
file.dwFileAttributesフラグとして使用されている整数型です。各ビットはフラグを表します(設定されているかどうかは0または1)
FILE_ATTRIBUTE_DIRECTORYは、1ビットが設定された整数です。(そのビットは、ファイルがディレクトリであるかどうかを表します)
file.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORYFILE_ATTRIBUTE_DIRECTORYフラグが設定されている場合はゼロ以外を返します。
file.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY設定されているフラグが。のみの場合はtrueを返しますFILE_ATTRIBUTE_DIRECTORY。