完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
关于文件名的
下面一段程序是寻找文件夹下面的有效文件个数的 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)==0X40)//取高四位,看看是不是音乐文件 { rval++;//有效文件数增加1 } } } 问题就出在红色这两句上,仔细思考不难发现当tfileinfo.fname[0]=0时,寻找结束,*tfileinfo.lfname与tfileinfo.fname[0]表示的意义是一样的 这也就表明实际上长文件名是没有用到的,因为一旦*tfileinfo.lfname等于0 程序还没有执行到这一步就已经结束了,我目前是这样理解的,不知对错 原子哥能解释一下不? |
|
相关推荐
4个回答
|
|
谢谢,已解决,是我把名称弄反了,为什么以前没看出来呢
|
|
|
|
还望各位大哥多多提意见
|
|
|
|
看不明白楼主在表达什么。。。 只能建议 看看while 及 break 的 作用吧 以及 f_readdir 这个函数的作用
|
|
|
|
惭愧在下新手
|
|
|
|
只有小组成员才能发言,加入小组>>
793 浏览 0 评论
1152 浏览 1 评论
2528 浏览 5 评论
2861 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2711 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1071浏览 3评论
194浏览 2评论
456浏览 2评论
369浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
454浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 22:07 , Processed in 1.047596 second(s), Total 55, Slave 45 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号