我想知道之间的差异:
file.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY
和:
file.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY
当我使用第一个时,我会获得更多文件。
FILE_ATTRIBUTE_DIRECTORY
是文件属性常量,file.dwFileAttributes
是Windows API中的WIN32_FIND_DATA
结构成员。
答案 0 :(得分:3)
规则很简单:
==
进行测试。 &
来测试是否存在该标志。对于dwFileAttributes
,文档说:
文件的文件属性。有关可能的值及其说明,请参阅...
使用复数表示我的第二个要点适用。
答案 1 :(得分: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 link
定期比较
#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) {
...
}
答案 2 :(得分:1)
file.dwFileAttributes
是一个用作标志的整数类型。每个位代表一个标志(0或1表示设置或未设置)
FILE_ATTRIBUTE_DIRECTORY
是一个整数,只有一个位设置。 (该位表示文件是否为目录)
file.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY
标志, FILE_ATTRIBUTE_DIRECTORY
将返回非零值。
file.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY
,则 FILE_ATTRIBUTE_DIRECTORY
返回true。