在 C 编程语言中,copendir() 函数用于打开指定的目录,并返回一个指向 DIR 类型结构的指针,供后续对目录的操作使用。要读取目录中的条目,则需要配合 readdir() 函数一起使用。下面是一段示例代码,演示了如何利用 copendir() 和 readdir() 遍历某个目录下的所有文件和子目录:
#include <stdio.h> #include <stdlib.h> #include <dirent.h> int main() { DIR *dir; struct dirent *entry; // 打开当前工作目录 dir = opendir("."); if (dir == NULL) { perror("opendir"); return EXIT_FAILURE; } // 逐个读取目录项 while ((entry = readdir(dir)) != NULL) { printf("%sn", entry->d_name); } // 关闭已打开的目录流 closedir(dir); return EXIT_SUCCESS; } </dirent.h></stdlib.h></stdio.h>
各函数作用说明:
- opendir():此函数负责打开指定路径的目录,并返回一个 DIR 指针。若打开失败则返回 NULL。
- readdir():该函数用于从已经打开的目录流中读取下一个目录项。它会返回一个 dirent 结构指针,其中包含诸如文件名(d_name)等信息。
- closedir():用来关闭之前通过 opendir() 打开的目录流。
使用提示:
- readdir() 返回的结构体中,d_name 成员是以空字符结尾的字符串,代表当前目录项的名字。
- 在完成目录操作后,务必调用 closedir() 来释放系统资源。
- 如果发生错误,可以借助 perror() 输出详细的错误信息。
上述程序将打印当前目录下所有的文件及子目录名称。如需访问其他目录内容,只需将 “.” 替换为对应的有效路径即可。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END