我想列出當前目錄下的所有文件,所以我有這樣的代碼:列出目錄
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