打印

请教一点关于FATFS的一些问题。。。(文件名由小写变成了大写)

[复制链接]
486|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
丑帅丑帅的|  楼主 | 2018-6-30 18:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用FATFS读取文件目录的时候,发现一些莫名的问题:

我想读取0:/Pic下所有文件,用串口打印出来:

用的是 2-M3-FATFS代码:

结果是这样:

这是一个MicroSD卡文件系统实验(FATFS R0.09)
disk_initialize starting......
  长文件名:
短文件名 :.
长文件名:
短文件名 :..
长文件名:新建文件夹
短文件名 :新建文~1
长文件名:新建文件夹 (2)
短文件名 :新建文~2



长文件名:
短文件名 :testtt.bmp


长文件名:
短文件名 :tesddd.bmp

长文件名:BacPic5.bmp
短文件名 :BACPIC5.BMP

长文件名:BacPic4.bmp
短文件名 :BACPIC4.BMP

长文件名:图片BacPic2.bmp
短文件名 :图片BA~1.BMP

长文件名:
短文件名 :


有的有短文件名没有长文件名。。
有的问题件长文件名和短文件名都有,但是短文件名小写变成了大写

int main(void)
{        
           char lfn[70];             /*为支持长文件的数组,[]最大支持255*/
//        char Path[100];

   /* USART1 config */
        USART1_Config();

        /* Interrupt Config */
        NVIC_Configuration();
         printf("
这是一个MicroSD卡文件系统实验(FATFS R0.09)
");
        printf ( "
disk_initialize starting......
" );
        f_mount(0,&fs);                  
        finfo.lfname = lfn;                   //为长文件名分配空间
        finfo.lfsize = sizeof(lfn);   //空间大小

        if(f_opendir(&dirs,"0:/Pic")==FR_OK);
        {
//                res=f_chdir("0:/pic");
                while (f_readdir(&dirs, &finfo) == FR_OK)  
                {
                        //if(finfo.lfname[0] == NULL && finfo.fname !=NULL) // 当长文件名称为空,短文件名非空时转换
                        //finfo.lfname =finfo.fname;
                        printf( "
长文件名:%s
", finfo.lfname );
                        printf( "
短文件名 :%s
", finfo.fname );
                        if(strstr( finfo.fname, ".bmp" )!=NULL)
                        {
//                                sprintf(Path,"%s/%s","0:/Pic",finfo.lfname);                                
                                //DisplayString(0, 0, finfo.lfname);
                                //printf( "
路径 :%s
", Path);
//                                printf( "
长文件名:%s
", finfo.lfname );
//                                printf( "
短文件名 :%s
", finfo.fname );        
                        }
                }
                        
        }

         
  while (1)
  {}
}

折腾了几天了,没找到原因,求教。。谢谢。。

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

741

主题

742

帖子

0

粉丝