1、误以为,若GetFileAttributes的返回值 等于 FILE_ATTRIBUTE_DIRECTORY 就意味着 它是文件夹!其实则不然:GetFileAttributes的返回值是 多个像FILE_ATTRIBUTE_DIRECTORY 的值 并起来求或 的结果。
2、因此,要想知道 某个文件 是不是文件夹,必须用 GetFileAttributes 与FILE_ATTRIBUTE_DIRECTORY 求与,看结果是否为 0.
3、程序如下:
//以下是 寻找windows文件的程序
sprintf( szWinStr, "%c:\\windows", pDriveStrings[iIndex] );
DWORD dwRet = GetFileAttributes( szWinStr );
if( dwRet == INVALID_FILE_ATTRIBUTES )
{
continue;
}
if ( dwRet & FILE_ATTRIBUTE_DIRECTORY )
{
szSelected = pDriveStrings[iIndex];
break;
}
本文探讨了在使用GetFileAttributes函数判断文件类型时的常见误解。指出其返回值实际上是多个文件属性通过按位或运算组合而成,不能直接与FILE_ATTRIBUTE_DIRECTORY相等来判断是否为文件夹。正确的做法是将返回值与FILE_ATTRIBUTE_DIRECTORY进行按位与运算,若结果为0,则表明是文件夹。
2352

被折叠的 条评论
为什么被折叠?



