1. fafs对长文件名的支持。
a). 首先要修改ffconfig.h中的
#define _USE_LFN 1 /* 0 to 3 */
#define _MAX_LFN 255 /* Maximum LFN length to handle (12 to 255) */
b). 在文件信息定义的地方增加以下代码:
#if _USE_LFN
static char lfn[_MAX_LFN * (_DF1S ? 2 : 1) + 1];
finfo.lfname = lfn;
finfo.lfsize = sizeof(lfn);
#endif
编译的时候会提示_DF1S没有定义,则在文件中定义:
#define _DF1S 0x81
c). 文件名的获取:
if(f_opendir(&dirs, (const TCHAR*)path) == FR_OK) //读取该磁盘的根目录
{
while (f_readdir(&dirs, &finfo) == FR_OK) //循环依次读取文件名
{
if(!finfo.fname[0])
break; //如果是文件名为空表示到目录的末尾。退出
if(finfo.lfname[0]) //输出长文件名
{
printf("file lname:%s\r\n",finfo.lfname); //输出长文件名
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)
{
strcpy(fName[frIndex],"1:Audio/");
strcat(fName[frIndex++],finfo.lfname);
}
}
else
{
printf("file name:%s\r\n",finfo.fname); //输出8.3格式文件名
result1=strstr(finfo.fname,".mp3"); //比较后缀是否为音频文件
result2=strstr(finfo.fname,".mid"); //比较后缀是否为音频文件
result3=strstr(finfo.fname,".wav"); //比较后缀是否为音频文件
result4=strstr(finfo.fname,".wma"); //比较后缀是否为音频文件
if(result1!=NULL||result2!=NULL||result3!=NULL||result4!=NULL)
{
strcpy(fName[frIndex],"1:Audio/");
strcat(fName[frIndex++],finfo.fname);
}
}
}
}
阅读(2073) | 评论(0) | 转发(0) |