初级会员

- 积分
- 100
- 金钱
- 100
- 注册时间
- 2019-5-5
- 在线时间
- 16 小时
|
1金钱
我在测试f_readdir这个函数功能时,设计功能:读取当前目录下所有文件夹或者文件,并把文件名打印在LCD屏上。
当我采用如下代码时,屏幕上不会打印任何信息,该函数在main中被调用,且显示函数也在main中调用,这里通过定义了
FILINFO的全局结构体数组来保存这些文件信息,然后再main函数中打印这些信息。
但是当我把下面注释的LCD_ShowString函数不注释,然后main函数那边不显示信息,这样在屏幕上反而是可以打印出来信息的。
提问:是不是文件夹在关闭以后,这些和文件或者文件夹相关的FILINFO变量也被清除了。
FRESULT Scan_Files(const TCHAR* path)
{
FRESULT result;
DIR dir;
FILINFO fileinfo;
unsigned int num = 0;
result = f_opendir(&dir,(const TCHAR*)path); //打开文件夹
if(result != FR_OK) return result;
while(1)
{
result = f_readdir(&dir,&fileinfo);
if (result != FR_OK || fileinfo.fname[0] == 0) break; //出现错误或者到了结尾
//是文件夹
if (fileinfo.fattrib & AM_DIR)
{
;
}
//是文件
else
{
;
}
// LCD_ShowString(50,340+num*18,400,18,16,fileinfo.fname);
num++;
}
f_closedir(&dir); //关闭文件夹
return result;
}
|
|