我想列出当前目录下的所有文件,所以我有这样的代码:列出目录
int WLoader::listdir(void)
{
WIN32_FIND_DATA data;
std::wstring path(L"*");
std::wstring *name;
HANDLE hFile = FindFirstFile(path.c_str(), &data);
if (hFile == INVALID_HANDLE_VALUE)
return (-1);
while(FindNextFile(hFile, &data) != 0 || GetLastError() != ERROR_NO_MORE_FILES)
{
std::cout << data.cFileName << std::endl;
}
return (0);
}
不知什么原因,我的程序显示这样的结果:
0029F29C
0029F29C
0029F29C
0029F29C
0029F29C
0029F29C
有人可以帮我吗?
它似乎是输出cFileName元素的地址指针,而不是它包含的字符串。你有没有尝试过使用printf()呢? – 2012-01-02 15:31:50
是的,它适用于printf,但我需要将cFileName转换为字符串,因为我需要它来打开一个dll。所以我认为如果我不能写出正确的文件名称,我不能将正确的名称写入字符串。 – 2012-01-02 15:34:52
@NickShaw:这是一个可怕的想法。显然他正在尝试流传什么;只能回到石器时代才可能掩盖这个问题,并且可能会使情况变得更糟。 – 2012-01-02 15:35:41