初级会员

- 积分
- 83
- 金钱
- 83
- 注册时间
- 2016-5-14
- 在线时间
- 14 小时
|
20金钱
代码如下
[mw_shl_code=c,true]void FATFS_File_Check(void)
{
char * result1, *result2 , *result3 , *result4;
char lfn[70];
FRESULT res;
File_Status.File_Total = 0;//清零总数,重新读取
finfo.lfname = lfn; //为长文件分配空间
finfo.lfsize = sizeof(lfn); //分配的空间大小
if(res != FR_OK)
{
res = FR_OK;
}
res = f_open(&fsrc , "1 olo.wav" , FA_READ);//fr_ok the file is opened.
res = f_close(&fsrc);
if(f_opendir(&dirs , "1:") == FR_OK) //打开根目录
{
while(f_readdir(&dirs , &finfo) == FR_OK) //遍历文件
{
if(finfo.fattrib & AM_ARC)
{
if((finfo.lfname[0] == NULL) && (finfo.fname != NULL)) //当长文件为空时,短文件名非空时转换
{
finfo.lfname = finfo.fname;
}
if(!finfo.lfname[0])//文件名为空时退出
{
File_Status.File_Disp = 1; //外部显示信息
break;
}
//判断文件是不是音频文件
result1 = strstr(finfo.lfname , ".mp3");
result2 = strstr(finfo.lfname , ".mid");
result3 = strstr(finfo.lfname , ".wav");
result4 = strstr(finfo.lfname , ".wma");
if((result1 != NULL) || (result2 != NULL) ||
(result3 != NULL) || (result4 != NULL))
{
File_Status.File_Total++;
File_Status.info[File_Status.File_Total].Name = finfo.lfname;//保存名字信息
File_Status.info[File_Status.File_Total].Time = finfo.fsize; //保存文件大小
}
}
}
}
}[/mw_shl_code]
文件系统种存在两个文件 一个是record.txt 一个是 lololo.wav,但是文件系统只能够找到前面个文件。lololo.wav又能够被打开,但是不能被這个函数找到,感到很费解
|
|