我的目标是列出特定目录中的文本文件,并让用户加载其中一个文件。
我使用Windows,Unicode是在我的编译器中预定义的。
问题:FileHandle始终为INVALID_HANDLE_VALUE。造成这种情况的原因是什么?如何纠正?
我的上一段代码如下:
ListAllTxtFiles(L"C:\\Users\\Tnc\Desktop\\Yazılım Çalışmaları\\Projects\\Oyun Projem\\data\\SaveFiles\\");
void ListAllTxtFiles(const wchar_t *Directory)
{
TCHAR Buffer[2048];
wsprintf(Buffer, L"s%*.txt", Directory);//there are security considerations about this function
WIN32_FIND_DATAW FindData;
HANDLE FileHandle = FindFirstFileW(Buffer, &FindData);
if (FileHandle == INVALID_HANDLE_VALUE)
{
printf("Could not find any files..\n");
}
else
{
do
{
printf("Found %s\\%s\n", Directory, FindData.cFileName);
} while (FindNextFile(FileHandle, &FindData));
CloseHandle(FileHandle);
}
}
答案 0 :(得分:1)
wsprintf(Buffer, L"s%*.txt", Directory);
应该是
wsprintf(Buffer, L"%s*.txt", Directory);
你的wsprintf格式字符串错误。