readdir 是一个用于读取目录内容的函数,通常在 C 语言中使用。要使用 readdir 获取子目录,你需要遵循以下步骤:
#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
DIR *dir = opendir("path/to/directory");
if (dir == NULL) {
perror("opendir");
exit(EXIT_FAILURE);
}
readdir 读取目录内容:struct dirent *entry;
while ((entry = readdir(dir)) != NULL) {
printf("%s\n", entry->d_name);
}
closedir(dir);
这是一个完整的示例,用于获取指定目录下的所有子目录:
#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
int main() {
const char *path = "path/to/directory";
DIR *dir = opendir(path);
if (dir == NULL) {
perror("opendir");
exit(EXIT_FAILURE);
}
struct dirent *entry;
while ((entry = readdir(dir)) != NULL) {
// 检查是否为子目录
if (entry->d_type == DT_DIR) {
printf("子目录: %s\n", entry->d_name);
}
}
closedir(dir);
return 0;
}
请注意,这个示例仅适用于类 Unix 系统(如 Linux 和 macOS)。在 Windows 上,你需要使用 Windows API 函数,如 FindFirstFile、FindNextFile 和 FindClose。