我有这段代码,它显示文件夹及其目录本身,而不是其内容。我想显示它的内容。我不想使用 boost::filesystem。
我该如何解决?
代码:
#include <windows.h>
#include <iostream>
int main()
{
WIN32_FIND_DATA data;
HANDLE hFind = FindFirstFile("C:\\semester2", &data); // DIRECTORY
if ( hFind != INVALID_HANDLE_VALUE ) {
do {
std::cout << data.cFileName << std::endl;
} while (FindNextFile(hFind, &data));
FindClose(hFind);
}
}
输出:
semester2
最佳答案
HANDLE hFind = FindFirstFile("C:\\semester2", &data); // DIRECTORY
您得到了目录,因为这正是您所要求的。如果您需要这些文件,请索要它们:
HANDLE hFind = FindFirstFile("C:\\semester2\\*", &data); // FILES
(如果您愿意,您可以改用 *.*
,但显然这仅适用于向后兼容性黑客攻击,因此可能应该避免。请参阅评论和 RbMm 的回答。)
关于c++ - 如何使用 Windows API 列出目录中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41404711/