5

我之前在我的 Dev-cpp 中使用过这种代码:

if((dh = opendir(folder)) !== false){
    while((file = readdir(dh)) !== false){
        // do my stuff
    }
    closedir(dh);
}

但是现在我正在使用 MSVC++,我不知道如何在那里添加这些文件,我试图在那里复制 dirent.h/dir.h/errno.h,但它给出了另一个与这些文件中的另一个包含文件相关的错误.. .,通过查看文件,我看到了 mingw 的东西,所以它的编译器相关?idk MSVC++ 使用什么编译器,但是是否可以在 MSVC++ 中复制粘贴这些文件并使其正常工作?

我试图从 MSDN 查找一些代码,但它真的搞砸了,所以我希望我可以使用上面的这些功能......

4

2 回答 2

4

我建议使用FindFirstFile()FindNextFile()

示例代码:

HANDLE hFind;
WIN32_FIND_DATA FindFileData;

if((hFind = FindFirstFile("C:/some/folder/*.txt", &FindFileData)) != INVALID_HANDLE_VALUE){
    do{
        printf("%s\n", FindFileData.cFileName);
    }while(FindNextFile(hFind, &FindFileData));
    FindClose(hFind);
}

这确实更好,因为我可以使用“* .txt”等,这使得查找某些特定文件类型变得更加容易,之前我必须为此编写自己的匹配函数:D

于 2009-05-19T20:37:52.693 回答
1

使用boost::filesystem,或者std::filesystem如果您使用的是 C++17

于 2019-08-18T10:01:50.127 回答