在c++wxDir中以非递归方式迭代目录
Iterate directories non-recursively in c++ wxDir
我正在尝试迭代一个目录并列出里面的所有文件夹。我查看了wx文档并使用了GetAllFiles
目前我使用的是:
wxArrayString files;
size_t n, i;
n = wxDir::GetAllFiles("c:/temp/", &files, wxEmptyString, wxDIR_DIRS);
for(i=0; i<n; i++) {
myOwnPrint("folders: %s", files.Item(i));
}
它列出了所有目录和其中的子目录。。
我只想列出所有外部文件夹。。
我检查了wxDirFlags,但我认为没有只以非递归方式列出目录的标志。
有什么想法吗?
GetAllFiles()
是一个辅助方法,可以避免在进行递归目录遍历时必须定义wxDirTraverser
派生的类,因此不递归没有多大意义——这就是它的作用。
对于给定目录中的文件和/或目录的简单迭代,只需使用注释中已经提到的GetFirst()
和GetNext()
:
wxDir dir(path);
if ( !dir.IsOpened() ) {
... handle error ...
}
wxString subdir;
for ( bool cont = dir.GetFirst(&subdir, wxString(), wxDIR_DIRS);
cont;
cont = dir.GetNext(&subdir) ) {
... do whatever you need to do with subdir ...
}
相关文章:
- 如何以优化的方式同时迭代两个间距不相等的数组
- 以迭代方式合并标准::unordered_map
- C++以迭代方式搜索混合类型地图
- 需要循环帮助以迭代方式添加到程序集中的总和变量
- 迭代文本对的最佳方式
- 为什么以这种方式使用迭代器有效?
- 如何以链式方式在两个容器上构建迭代器
- 通过提升属性树(递归方式)发出 YAML 迭代
- 实现迭代器通用方法的正确方式
- 以迭代方式编写递归代码
- 以迭代方式编写递归函数
- 在C++中以迭代方式连接两个字符串
- std::算法友好的方式迭代'std::vector<std::vector<something>>
- 我可以以这种方式返回迭代器吗?
- 如何以优雅高效的方式实现各种迭代器类别
- 使用提升预处理器以迭代方式调用可变参数模板
- 对链表进行迭代的不同方式
- 以排序方式迭代 std::vector<std::p air<T,U> > 对象
- 如何编写一个可以以类型安全的方式迭代泛型类型的函数
- 在c++wxDir中以非递归方式迭代目录