如何使用openFrameworks c++递归扫描目录中的头文件
How to recursively scan a directory for header files with openFrameworks c++
我正在开发一个openFrameworks应用程序,该应用程序允许我拖放一个目录来查找所有头文件。下面的函数获取删除的目录,并递归地扫描它(及其所有子目录)中的头文件,并将它们推回到headerFile向量中。
目前,它只会在原始目录中找到一小部分头,但在进行了一些cout检查后,我确信我可以看到它正在进入子目录。如果有人能告诉我出了什么问题,我将不胜感激!
这是我的密码!
void Directory::scanDirectory(ofDirectory dir)
{
int i, size;
ofDirectory* newDir;
size = dir.size();
for (i = 0; i < size; i++){
if (dir.getFile(i).isDirectory()==1){
newDir = new ofDirectory(dir.getFile(i).getAbsolutePath());
newDir->listDir();
newDir->sort();
scanDirectory(*newDir);
}
else if (dir.getFile(i).getExtension() == "h"){
headerFiles.push_back(dir.getFile(i));
}
i++;
}
}
大家都好!
JOSHUA PARIS BATTY<lt;已发现解决方案。我不小心在每个文件上迭代了两次。我最初使用while循环,并在循环结束时迭代I来遍历文件。然而,一旦我把最后一个"I++"改成for循环,我就应该去掉它。哇!
1)size=dir.sizes()应替换为size=dir.listDir();因为需要填充目录。。
2) 你的for循环中有一个i++。。导致循环错误。。
3) 不需要为newdir使用指针。。
查看下面的示例。。。
void Directory::scanDirectory(ofDirectory dir){
int i,size;
size = dir.listDir();
dir.sort();
for (int i = 0; i < size; i++){
if (dir.getFile(i).isDirectory()==1){
ofDirectory newDir(dir.getFile(i).getAbsolutePath());
ofApp:: scanDirectory( newDir );
}else {
fileslist.push_back(dir.getPath(i));
}
}
}
相关文章:
- C++ 如何从文本文件中扫描二维数组并对行求和?
- 我可以在我的 cmake 代码中手动使用 CMake 的 cpp 文件依赖项扫描程序吗?
- 有没有办法在C 中扫描TXT文件中的单词或名称
- 递归扫描目录中的文件
- 扫描头文件并报告可用代码的程序
- 如何扫描TXT文件并输入矩阵C
- 扫描目录和子目录中的.txt文件
- 如何扫描文件夹中的所有文件,包括VC++2008中的子文件夹
- 调试断言失败文件、令牌扫描程序和文本文件
- 将文件中的整数扫描到C中的数组中
- 以二进制模式扫描文件,并将十六进制字符解释为C++中的实际数字
- 逐行扫描文件中的输入
- 如何使用openFrameworks c++递归扫描目录中的头文件
- 等待,直到pdf文件被病毒扫描检查
- 如果我使用c++作为编译器,如何使用clang静态分析器扫描c++文件?
- C:文件扫描与c++,访问拒绝特定的文件
- 在c++中从外部文件扫描完整的一行
- 加快文件扫描的CRC算法
- 扫描目录查找并打开文件
- c++扫描硬盘中的MP3文件,并将其写入文本文件