在 Linux 环境下,如果编写程序且需要通过函数接口来遍历目录树,可以考虑使用以下几个常用的调用:
1. opendir() / readdir() / closedir():
这是 POSIX 标准定义的函数,用于遍历目录。`opendir()` 用于打开一个目录,`readdir()` 用于读取目录内的项,`closedir()` 用于关闭目录。遍历目录时,通常会对获取的每一个条目进行判断,以确定它是文件还是目录。对于目录项需要递归地调用遍历函数。
#include <stdio.h>
#include <dirent.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
void listdir(const char *name, int indent)
{
DIR *dir;
struct dirent *entry;
if (!(dir = opendir(name)))
return;
while ((entry = readdir(dir)) != NULL) {
if (entry->d_type == DT_DIR) {
char path[1024];
if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0)
continue;
snpr