关于文件夹中的文件名

发布于 2024-10-02 12:53:39 字数 95 浏览 4 评论 0原文

我想获取 c/c++ 文件夹中的所有文件名。我使用 dirent.h 但它在 dirent.h 上显示错误? 我应该如何进行? 除了 dirent.h 有什么办法吗? 提前致谢

i want to get all filenames in folder in c/c++ .i use dirent.h but it shows error on the dirent.h?
how should i proceed?
Is any way rather than dirent.h?
Thanks in advance

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

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

发布评论

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

评论(1

埋葬我深情 2024-10-09 12:53:39

Boost.Filesystem 可移植地执行此操作。其 教程 解释了如何执行这个确切的任务。简而言之:

#include <algorithm>
#include <boost/filesystem.hpp>
#include <iostream>

namespace fs = boost::filesystem;
using namespace std;

int main(int argc, char *argv[])
{
    fs::path p(argv[1]);

    if (fs::exists(p) && fs::is_directory(p))
        copy(fs::directory_iterator(p), fs::directory_iterator(),
             ostream_iterator<fs::directory_entry>(cout, "\n"));

    return 0;
}

如果您确实想使用 dirent.h,请将其包含为:

#include <sys/types.h>    /* required before including sys/dirent.h! */
#include <sys/dirent.h>

Boost.Filesystem does this portably. Its tutorial explains how to perform this exact task. In short:

#include <algorithm>
#include <boost/filesystem.hpp>
#include <iostream>

namespace fs = boost::filesystem;
using namespace std;

int main(int argc, char *argv[])
{
    fs::path p(argv[1]);

    if (fs::exists(p) && fs::is_directory(p))
        copy(fs::directory_iterator(p), fs::directory_iterator(),
             ostream_iterator<fs::directory_entry>(cout, "\n"));

    return 0;
}

If you do want to use dirent.h, include it as:

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