FatFs 使用中文长文件名
来源:互联网 发布:ubuntu alias配置文件 编辑:程序博客网 时间:2024/06/06 06:53
一、说明
使用长文件名,一般会是在使用 f_readdir()
这个函数时碰到,这个函数的功能就是获取上一步使用 f_opendir()
打开的文件夹中的内容,并将文件信息保存到定义的结构体。
结构体内容如下,
里面包含有文件大小,上一次修改日期,文件属性,文件名等。可见,普通文件名是存在一个 fname[13]
的数组里的,这就使得长文件名无法正常显示。而长文件名是一个指针,这个指针指向的数组是需要自己定义的。
二、方法
在使用长文件名时,需要更改 ffconf.h 中的宏定义如下,
如果需要支持中文则还需要做如下更改,
如下内容非常关键:
方式1
使用长文件名时,需要自己添加存储长文件名的 buffer, 所以需要在用户程序中定义如下内容;
将文件信息中长文件名指针指向定义的 buffer
方式2
也可以直接使用这种方式:
效果如下:
三、演示代码
附一份示例代码:
void scan_files(void){#if _USE_LFN Fileinfo.lfname = lfn; Fileinfo.lfsize = sizeof(lfn);#endif uint8_t ret; uint8_t sum = 0; if(FATFS_LinkDriver(&SD_Driver, SDPath) == 0) { if(f_mount(&SDFatFs, (TCHAR const*)SDPath, 0) != FR_OK) { SD_Error_Handler(); } else { if((ret = f_opendir(&Dir,(const TCHAR *)MUSIC_DIR_PATH)) != FR_OK) { printf("ret : %d ",ret); SD_Error_Handler(); } else { printf("open music dir\n"); for(;;) { ret = f_readdir(&Dir,&Fileinfo); if(ret != FR_OK || Fileinfo.fname[0] == 0) { break;//Break on error or end of dir } else { if(Fileinfo.lfname[0] == 0) { printf("lfname : error\n"); } else printf("%s\n",Fileinfo.lfname); } if(Fileinfo.fattrib & AM_ARC)//is a file? { strcpy((char *)filename[sum],(char *)Fileinfo.lfname); sum++; } } } } } printf("sum : %d \n",sum); show_filename(sum); //show_file(); FATFS_UnLinkDriver(SDPath);}
0 0
- FatFs 使用中文长文件名
- FATFS文件系统的中文长文件名配置的几个注意事项
- FATFS支持英文长文件名
- fatfs的长文件名/短文件名
- FATFS怎么支持长文件名和汉字
- FATFS的长文件名特性相关代码
- 如何设置FatFs文件系统支持长文件名
- apache设置中文支持&长文件名显示
- 长文件名
- 关于长文件名/短文件名
- fatfs文件系统使用描述
- 使用DownloadXPro控件解决IE长文件名下载BUG
- 导出到excel使用中文文件名
- 长文件名的规则
- FAT32长文件名规则
- FATFS
- FatFs
- FatFs
- clearfix清除浮动进化史
- linux Busybox 使用自带sendmail发送邮件以及php mail函数相应配置
- Java IO 编写文档
- 跨域资源共享的方式与实现原理
- I Love You
- FatFs 使用中文长文件名
- android studio 的搭建过程
- Google Chrome在Windows7安装离线版
- 软件开发项目中的需求变更分析和解决之道
- IOS缓存管理之YYCache使用
- css常用选择器总结
- Xpath学习笔记
- 牧羊少年奇幻之旅
- java中用servlet生成验证码