c++ - 如何使用 Windows API 列出目录中的文件?

标签 c++ windows winapi directory-listing

我有这段代码,它显示文件夹及其目录本身,而不是其内容。我想显示它的内容。我不想使用 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/

相关文章:

c# - 处理从 c++ dll 返回到 C# 的数组

c++ - Rcpp - 如何在 C++ 代码中使用分布函数

windows - "edit"不是 cmd.exe 中的有效命令?

c# - P/调用错误或我做错了吗?

c++ - 没有重载函数的实例 ""匹配参数列表错误

c++ - 将 LOWORD(wParam) 转换为 const wchar_t*

c++ - 在 C++ 中打印 2^64 整数

c++ - 使用带有 int 作为字符类型的 iostreams 可以吗?

windows - 为什么vbs msgbox无法与普通用户的任务计划程序一起使用?

windows - 如何人为地将CPU负载到某个百分点?