MFC 判断文件目录是否存在 WIN10系统

来源:互联网 发布:淘宝买家一个钻多少钱 编辑:程序博客网 时间:2024/05/22 08:38

MFC 中判断文件是否存在可使用以下代码:

BOOL PathExist(CString sPath){DWORD dwAttr = GetFileAttributes(sPath) ;        if(dwAttr&FILE_ATTRIBUTE_DIRECTORY){return TRUE;}else{return FALSE;}}

GetFileAttributes函数返回目录或者文件的属性,返回值与FILE_ATTRIBUTE_DIRECTORY & 不为0,则spath为文件目录。FILE_ATTRIBUTE_DIRECTORY的值为16(0x00000010)


那么是否可以直接将上述代码中的第三行改为判断是否相等呢?

BOOL PathExist(CString sPath){DWORD dwAttr = GetFileAttributes(sPath) ;        if(dwAttr==FILE_ATTRIBUTE_DIRECTORY){return TRUE;}else{return FALSE;}}

最好不要这么做。因为GetFileAttributes函数返回时众多属性中的一个或者多个,例如对于C:\Users\zhangsanfeng目录(XP下为C:\Documents and Settings\zhangsanfeng)

后者返回的是16,这么判断没有错。但是前者返回的是17 即FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_DIRECTORY,文件目录存在但是是只读的。


当然可以直接用一个函数PathFileExists判断也可以。


0 0
原创粉丝点击