软件中碰到个BUG, 使用CreateFile 来判断文件是否存在.
之前,忽略了,文件存在,但是其它原因无法打开的情况.
修改后代码:
BOOL fileExists(LPCTSTR szPath) { HANDLE hFile = CreateFile(szPath ,GENERIC_READ ,FILE_SHARE_READ|FILE_SHARE_READ|FILE_SHARE_DELETE ,NULL ,OPEN_EXISTING ,FILE_ATTRIBUTE_NORMAL ,NULL); if(INVALID_HANDLE_VALUE != hFile && NULL != hFile) { CloseHandle(hFile); return TRUE; } DWORD dwErr = GetLastError(); if (ERROR_ALREADY_EXISTS == dwErr) return TRUE; else if (ERROR_ACCESS_DENIED == dwErr) return TRUE; else return FALSE; }