c语言while找rn,STM32Fatfs遍历文件(C语言实现)

两种方法二选一:

//遍历文件

//path:路径

//返回值:执行结果

u8 mf_scan_files(u8 * path)

{

FRESULT res;

char *fn;   /* This function is assuming non-Unicode cfg. */

char *p;

#if _USE_LFN

fileinfo.lfsize = _MAX_LFN * 2 + 1;

fileinfo.lfname = mymalloc(SRAMIN,fileinfo.lfsize);

#endif

res = f_opendir(&DirInfo,(const XCHAR*)path); //打开一个目录

if (res == FR_OK)

{

printf("rn");

while(1)

{

res = f_readdir(&DirInfo, &FilInfo);                   //读取目录下的一个文件

if (res != FR_OK || FilInfo.fname[0] == 0) break;  //错误了/到末尾了,退出

#if _USE_LFN

fn = *fileinfo.lfname ? fileinfo.lfname : fileinfo.fname;

#else

fn = FilInfo.fname;

#endif                                               /* It is a file. */

p=strstr(fn,"bin");

if(p!=NULL)

{

File_Name=fn;

break;

}

}

}

return res;

}

/*------------------------------------------------------

读取指定目录下所有的文件

说明:

f_readdir    按顺序读取目录内文件,

重复调用此函数可读取目录内所有文件;

---------------------------------------------------------*/

void FatReadDirTest(s8 *path)

{

// FRESULT res; /* FatFs 函数通用结果代码 */

#if _USE_LFN//如果使能支持长文件名 先对下面两项初始化

fileinfo.lfsize=_MAX_LFN * 2 + 1;//

fileinfo.lfname=(TCHAR*)FileName;//

#endif

if(f_opendir(&DirInfo,(const XCHAR*)path) == FR_OK)/* 打开文件夹目录成功,目录信息已经在dir结构体中保存 */

{

while(f_readdir(&DirInfo, &FilInfo) == FR_OK)  /* 读文件信息到文件状态结构体中 */

{

if(!FilInfo.fname[0]) break; /* 如果文件名为‘ ',说明读取完成结束 */

printf("%s/",path);//打印路径

#if _USE_LFN

printf("文件名:%srn",fileinfo.lfname );//打印信息到串口

#else

printf("文件名:%srn", FilInfo.fname);//

#endif

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值