FindFirstFile 錯誤: ERROR_FILE_NOT_FOUND

錯誤:

hFindFile = FindFirstFile( tCurrentDirecory , &findData );
hFindFile = INVALID_HANDLE_VALUE 
GetLastError()得到的錯誤提示是2    ERROR_FILE_NOT_FOUND 
無法找到要打開的文件。
warning C4133: “函數”: 從“char [66]”到“LPCWSTR”的類型不兼容
tCurrentDirecory 是char類型的;

分析:

vs2008默認設置爲Unicode寬字節
使用FindFirstFile調用的是FindFirstFileW函數,後面的參數使用char類型也就找不到文件;

解決方法:

修改爲FindFirstFileA
或者修改程序爲使用單字節;

備註:

在使用FindFirstFile循環讀取文件夾時,在循環內部不能調用FindClose關閉句柄,因爲FindNextFile需要用這個HANDLE。關閉要等所有都處理完成後在關閉句柄。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章