可以调用 dirent.h 中的scandir函数扫描指定目录中所有的文件名
如下,用了一个队列先进先出保存每一级的目录,while循环,无需递归,需要把.和..目录过滤
#include <stdio.h>
#include <sys/stat.h>
#include <stdlib.h>
#include <dirent.h>
#include <queue>
using namespace std;
void scandir_recursive(const char* szDir)
{
queue<char*> queDir;
char *temp = new char[NAME_MAX + 1];
strncpy(temp, szDir, NAME_MAX);
queDir.pus

本文介绍了如何利用Linux系统调用scandir遍历指定目录及其子目录中的所有文件,通过队列实现非递归方式,同时需要排除'.'和'..'特殊目录。

4686

被折叠的 条评论
为什么被折叠?



