MFC判断是否是文件夹

参考http://blog.sina.com.cn/s/blog_7a18bae10100t7zb.html

if(findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) 

这个判断语句是通过 将dwFileAttributes和FILE_ATTRIBUTE_DIRECTORY做位的与运算 
来判断所找到的项目是不是文件夹 

因为 FindFirstFile返回的 findData 中 dwFileAttributes项的值 

可能是 
FILE_ATTRIBUTE_ARCHIVE 
FILE_ATTRIBUTE_COMPRESSED 
FILE_ATTRIBUTE_DIRECTORY 
FILE_ATTRIBUTE_HIDDEN 
FILE_ATTRIBUTE_NORMAL 
FILE_ATTRIBUTE_OFFLINE 
FILE_ATTRIBUTE_READONLY 
FILE_ATTRIBUTE_SYSTEM 
FILE_ATTRIBUTE_TEMPORARY 
中几项的组合值 

findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY 
的结果只能是两种: 
FILE_ATTRIBUTE_DIRECTORY 非零值 ,if条件是真 
0 ,if条件是假 

通过 findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY 
可以判断 dwFileAttributes项的值中是否 FILE_ATTRIBUTE_DIRECTORY,即判断所找到的项目是不是文件夹 

这种对位运算结果的判断,在windows编程中有很多 
如窗体属性,鼠标按键

================

文章中没有提到findData如何获取 下面补充


    if (GetFileAttributes(path) & FILE_ATTRIBUTE_DIRECTORY) {
        MessageBox((CString)"该文件是文件夹");
    }
    else {
        MessageBox((CString)"该文件不是文件夹"");
    }

猜你喜欢

转载自blog.csdn.net/aila852/article/details/88183270