findnextfile
场景:FindFirstFile跟FindNextFile問題
FindFirstFile和FindNextFile問題
為甚麼上面的代碼只能輸出文件名的第一個字符?
怎解決?
我用的是VS2012
------解决方案--------------------
稍微改一下 _tmain -> main FindFirstFile(L"E:....)->FindFirstFile("E:...) 在vc控制台下能够得到结果啊:
------解决方案--------------------
FindFirstFile和FindNextFile問題
- C/C++ code
int _tmain(int argc, _TCHAR* argv[]) { HANDLE file; WIN32_FIND_DATA fileData; if ((file = FindFirstFile(L"E:\\*.*", &fileData)) == INVALID_HANDLE_VALUE) { // printf("fails"); } else { printf("filename:%s", fileData.cFileName); while(FindNextFile(file, &fileData)) { printf("filename:%s \n", fileData.cFileName); } } FindClose(file); system("pause"); return 0; }
為甚麼上面的代碼只能輸出文件名的第一個字符?
怎解決?
我用的是VS2012
------解决方案--------------------
稍微改一下 _tmain -> main FindFirstFile(L"E:....)->FindFirstFile("E:...) 在vc控制台下能够得到结果啊:
------解决方案--------------------
- C/C++ code
//================================================================= #include <stdio.h> #include <iostream.h> #include <windows.h> int main() { HANDLE file; WIN32_FIND_DATA fileData; if ((file = FindFirstFile("E:\\*.*", &fileData)) == INVALID_HANDLE_VALUE) { printf("fails"); } else { printf("filename:%s\n", fileData.cFileName); while(FindNextFile(file, &fileData)) { printf("filename:%s \n", fileData.cFileName); } } FindClose(file); system("pause"); return 0; }
------解决方案--------------------
刚才又搞了个Unicode版本
- C/C++ code
int main() { HANDLE file; WIN32_FIND_DATA fileData; if ((file = FindFirstFile(L"E:\\*.*", &fileData)) == INVALID_HANDLE_VALUE) { // printf("fails"); } else { setlocale(LC_ALL,""); printf("filename:%ls",fileData.cFileName); while(FindNextFile(file, &fileData)) { printf("filename:%ls",fileData.cFileName); } } FindClose(file); system("pause"); return 0; }