gpt4 book ai didi

c++ - 在 C++ wxDir 中非递归地迭代目录

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:15:55 24 4
gpt4 key购买 nike

我正在尝试迭代一个目录并列出其中的所有文件夹。我检查了 wx documentation并使用了 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 ...
}

关于c++ - 在 C++ wxDir 中非递归地迭代目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33624399/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com