我想在Windows上使用GetFileAttributes()函数测试文件系统对象是否是文件。 I've read this,似乎这并不容易,因为似乎没有一个标志告诉我"这是一个文件"。所以我现在做的是这样的事情:
int is_file = 0;
DWORD attr = GetFileAttributes(path);
if (attr != 0xFFFFFFFF) {
DWORD DontWantAttrs = FILE_ATTRIBUTE_DIRECTORY | FILE_ATTRIBUTE_DEVICE | FILE_ATTRIBUTE_OFFLINE | FILE_ATTRIBUTE_REPARSE_POINT | 0xFFFFC000;
is_file = ( attr & DontWantAttrs ) == 0;
}
这似乎在我的测试中给出了正确的结果,但是我不确定这是否完全正确,即它是否会对于文件的所有内容都返回true,而对于不是文件的所有内容都是false