我需要枚举目录中的所有文件,然后导航到子目录并执行相同的操作。
理想情况下,该算法在linux macos windows(过时)上应该不再以同样的方式工作。
更新:我现在知道了VFS,但我对使用VFS来枚举目录感到困惑。有什么建议吗?我应该打开一个dir as文件吗?
发布于 2011-03-08 14:26:20
POSIX.1-2001指定了opendir、readdir和closedir、seekdir、rewinddir和telldir。您的平台可能有手册页来描述如何使用它们。
据报道,MS库不直接支持这些库,而是更喜欢使用FindFirst和FindNext,但据推测,有几个模拟库可以提供上述功能;您必须自己对这部分进行排序,因为我对Win32不是很熟悉。
发布于 2011-03-08 14:23:44
如果你用的是GCC,你可以试试文件系统接口。点击这里:GNU file system interface referemce
发布于 2011-03-08 15:11:46
您可以使用Boost Filesystem,它可以移植到Linux、Windows和MacOS。顾名思义,recursive_directory_iterator将允许您递归地遍历目录。
#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;
}
}https://stackoverflow.com/questions/5229039
复制相似问题