目录文件相关函数(opendir、readdir、closedir、chmod/fchmod、stat/lstat/fstat)

opendir函数用来打开一个目录文件:

#include <dirent.h>

DIR *opendir(const char *name);

Ø DIR是用来描述一个打开的目录文件的结构体类型
Ø 成功时返回目录流指针;出错时返回NULL

readdir函数用来读取目录流中的内容:

#include <dirent.h>

struct dirent *readdir(DIR *dirp);

Ø struct dirent是用来描述目录流中一个目录项的结构体类型
Ø 包含成员char d_name[256] 参考帮助文档
Ø 成功时返回目录流dirp中下一个目录项;
Ø 出错或到末尾时时返回NULL

closedir函数用来关闭一个目录文件:

#include <dirent.h>

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FATFS 是一个用于嵌入式系统中的文件系统库,提供了对 FAT 文件系统的支持。它的 f_opendir 和 f_readdir 函数用于打开和读取目录。 f_opendir 函数用于打开一个目录,其函数原型如下: ``` FRESULT f_opendir ( DIR* dp, // 目录对象指针 const TCHAR* path // 目录路径 ); ``` 其中,dp 是一个指向 DIR 类型的目录对象指针,path 是一个指向以 null 结尾的目录路径字符串。函数返回值为 FRESULT 类型,指示函数的执行结果。 f_readdir 函数用于读取目录中的下一个文件或子目录,其函数原型如下: ``` FRESULT f_readdir ( DIR* dp, // 目录对象指针 FILINFO* fno // 文件信息结构体指针 ); ``` 其中,dp 是一个指向 DIR 类型的目录对象指针,fno 是一个指向 FILINFO 类型的文件信息结构体指针。函数返回值为 FRESULT 类型,指示函数的执行结果。 使用 f_opendir 函数打开目录后,可以使用 f_readdir 函数读取目录中的文件或子目录,直到读取完毕。例如,可以使用以下代码列出目录中的所有文件和子目录: ```c FRESULT res; DIR dir; FILINFO fno; char *path = "/"; res = f_opendir(&dir, path); if (res == FR_OK) { while (f_readdir(&dir, &fno) == FR_OK && fno.fname[0]) { if (fno.fattrib & AM_DIR) { printf("DIR %s\n", fno.fname); } else { printf("FILE %s\n", fno.fname); } } f_closedir(&dir); } ``` 这段代码会打开根目录,并逐个读取目录中的文件和子目录,然后输出它们的名称和类型。注意,在使用 f_readdir 函数读取目录时,需要检查返回的文件名是否为空,以判断是否已经读取完毕。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值