Microsoft Visual Studio:opendir() 和 readdir(),如何实现?

发布于 2024-07-21 16:08:40 字数 443 浏览 11 评论 0原文

我之前在我的 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 的东西在那里,所以它的编译器相关? 我不知道 MSVC++ 使用什么编译器,但是是否可以将这些文件复制粘贴到 MSVC++ 中并使其正常工作?

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

I've used this kind of code in my Dev-cpp before:

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

But now i am using MSVC++ and i dont know how to add those files there, i tried to copy dirent.h/dir.h/errno.h in there, but it gives another error relating to another included files inside those files ..., and by looking in the files i see mingw stuff there so its compiler related? idk what compiler MSVC++ uses, but is it possible to copypaste those files in MSVC++ and get it working?

I tried to look up some code from MSDN but it was really messed up, so im hoping i could use these functions above...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

不知所踪 2024-07-28 16:08:40

我建议使用 FindFirstFile() 和 < a href="http://msdn.microsoft.com/en-us/library/aa364428(VS.85).aspx" rel="nofollow noreferrer">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

I would suggest using FindFirstFile() and FindNextFile().

sample code:

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);
}

This really is better, because i can use "*.txt" etc, makes it much more easier to find some specific filetypes, earlier i had to write own match function for that :D

尝蛊 2024-07-28 16:08:40

如果您使用的是 C++17,请使用 boost::filesystemstd::filesystem

Use boost::filesystem, or std::filesystem if you are using C++17

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文