首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在POSIX/c c++中枚举一个目录下的所有文件?

如何在POSIX/c c++中枚举一个目录下的所有文件?
EN

Stack Overflow用户
提问于 2011-03-08 14:16:39
回答 4查看 1.7K关注 0票数 3

我需要枚举目录中的所有文件,然后导航到子目录并执行相同的操作。

理想情况下,该算法在linux macos windows(过时)上应该不再以同样的方式工作。

更新:我现在知道了VFS,但我对使用VFS来枚举目录感到困惑。有什么建议吗?我应该打开一个dir as文件吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-03-08 14:26:20

POSIX.1-2001指定了opendirreaddirclosedirseekdirrewinddirtelldir。您的平台可能有手册页来描述如何使用它们。

据报道,MS库不直接支持这些库,而是更喜欢使用FindFirstFindNext,但据推测,有几个模拟库可以提供上述功能;您必须自己对这部分进行排序,因为我对Win32不是很熟悉。

票数 4
EN

Stack Overflow用户

发布于 2011-03-08 14:23:44

如果你用的是GCC,你可以试试文件系统接口。点击这里:GNU file system interface referemce

票数 3
EN

Stack Overflow用户

发布于 2011-03-08 15:11:46

您可以使用Boost Filesystem,它可以移植到Linux、Windows和MacOS。顾名思义,recursive_directory_iterator将允许您递归地遍历目录。

代码语言:javascript
复制
#include "boost/filesystem.hpp"
#include <iostream>

int main()
{
    namespace fs = boost::filesystem;
    fs::recursive_directory_iterator end;
    for ( fs::recursive_directory_iterator dir("./"); dir != end; ++dir )
    {
       std::cout << *dir << std::endl;
    }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5229039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档