Microsoft Visual Studio:opendir()和readdir(),怎么样?

5 readdir visual-studio visual-c++

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

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

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

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

小智 5

我建议使用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);
}
Run Code Online (Sandbox Code Playgroud)

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