用407的FATFS例程,长文件名打印出来有问题,该怎么改?

2019-07-20 21:01发布

本帖最后由 rawgan 于 2016-7-29 13:56 编辑

这是我写的代码
QQ截图20160729134404.png
打印出来是这样子的
文件打印目录.png



目录下的文件是这下面这样:
QQ截图20160729135036.png

我是用F407的FATF例程进行移植的,
其中ffconf.h:
#define _CODE_PAGE        936        
#define        _USE_LFN        3        /* 0 to 3 */
#define        _MAX_LFN        255        

QQ截图20160729134844.png

这应该是只支持短文件名吧,该什么改才支持长文件名呢????


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
rawgan
1楼-- · 2019-07-20 21:11
参考了mf_readdir(),找到原因了dir是个全局变量,里面不需要在定义。改成如下就正常了


[mw_shl_code=c,true]FRESULT Scan_dir(const TCHAR *path_dir)
{
        if(f_opendir(&dir,path_dir)==FR_OK)//′ò¿aí¨μà1Îļt¼D
        {
                #if _USE_LFN
                        fileinfo.lfsize = _MAX_LFN * 2 + 1;
                        fileinfo.lfname = mymalloc(SRAMIN,fileinfo.lfsize);
                #endif
                while(f_readdir(&dir,&fileinfo)==FR_OK)//°′Ë3Dò¶áÎļt¼D
                {
                        if(!fileinfo.fname[0])
                                break;
                        if(fileinfo.fattrib==AM_ARC)
                                printf("ÎļtÃû£o%s ",fileinfo.lfname);
                        printf("lfn_idx=%d ",dir.lfn_idx);

                }
                myfree(SRAMIN,fileinfo.lfname);
                f_closedir(&dir);
        }
        printf("Ŀ¼¶áè¡ ");
        return 1;
}[/mw_shl_code]
正点原子
2楼-- · 2019-07-21 01:47
 精彩回答 2  元偷偷看……

一周热门 更多>