关于文件夹中的文件名

时间:2010-11-17 11:44:32

标签: c++ filesystems directory amazon-ec2

我想在c / c ++ .i中获取文件夹中的所有文件名。使用dirent.h但它在dirent.h上显示错误? 我该怎么办? 有什么办法而不是dirent.h? 提前致谢

1 个答案:

答案 0 :(得分:2)

Boost.Filesystem可以轻松地做到这一点。它的tutorial解释了如何执行这个确切的任务。简而言之:

#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>