Fatfs 关于长文件名和短文件名的读取

2019-08-22 14:06发布

我想问一下原子哥在FATFS系统里是怎么判断是长文件名还是短文件的,假如我设置了长文件的读取后,读文件时当读到短文件的时候是按照长文件来读取还是短文件读取啊,下面的这句if(res!=FR_OK||tfileinfo.fname[0]==0)break;  假如我SD卡里面存的都是长文件名那他会不会跳出wehile循环。





u16 pic_get_tnum(u8 *path)
{              u8 res;        u16 rval=0;       DIR tdir;             //临时目录        FILINFO tfileinfo; //临时文件信息            u8 *fn;                                                                         res=f_opendir(&tdir,(const TCHAR*)path); //打开目录       tfileinfo.lfsize=_MAX_LFN*2+1;                                    //长文件名最大长度        tfileinfo.lfname=mymalloc(SRAMIN,tfileinfo.lfsize); //为长文件缓存区分配内存        if(res==FR_OK&&tfileinfo.lfname!=NULL)        {               while(1)//查询总的有效文件数               {                res=f_readdir(&tdir,&tfileinfo);                    //读取目录下的一个文件                if(res!=FR_OK||tfileinfo.fname[0]==0)break;      //            

   fn=(u8*)(*tfileinfo.lfname?tfileinfo.lfname:tfileinfo.fname);//
判断是长文件名还是短文件名如果是长文件名就取长文件名否则就去短文件名的信息                                       res=f_typetell(fn);                       if((res&0XF0)==0X50)//取高四位,看看是不是图片文件                       {                             rval++;//有效文件数增加1                      }                       }         }        return rval; }
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。