gpt4 book ai didi

c - 列出 Windows 目录中的文件在 C 中不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 04:41:20 25 4
gpt4 key购买 nike

我的程序中有这段代码:

char * choosePic(const char * dir)
{
WIN32_FIND_DATA fdFile;
HANDLE hFind = null;
char sPath[2048];

sprintf(sPath, "%s\\*.*", dir);

if ((hFind = FindFirstFile((LPCWSTR) sPath, &fdFile)) == INVALID_HANDLE_VALUE)
{
if (GetLastError() == ERROR_FILE_NOT_FOUND)
{
printf("File not found");
}
else
{
printf("Error with path")
}

FindClose(hFind);
return NULL;
}

do
{
if (strcmp((char *) fdFile.cFileName, "*.*") != 0 && strcmp((char *) fdFile.cFileName, ".." != 0)
{
printf("%s %s", sPath, dir);
}
} while (FindNextFile(hFind, &fdFile));

FindClose(hFind);
}

我给这个函数一个路径,choosePic("C:\\Windows"),我只得到:

> Error with path

我尝试了很多东西,甚至以管理员权限运行。什么都没用。

最佳答案

从您使用的转换来看,您的项目似乎设置为 Unicode(项目属性 -- 配置属性\常规),在这种情况下,您的 char 变量需要更改为 wide characterwchar_tsprintf()strcmp()printf() 函数需要更改为它们的Unicode 等效项——在必须使用强制转换时,请始终注意您可能做错了什么!

或者,您可以将项目更改为使用多字节字符集...

关于c - 列出 Windows 目录中的文件在 C 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26200287/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com