打印
[STM32F4]

FatFs长文件名

[复制链接]
4410|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
abcdotaabc|  楼主 | 2014-8-22 11:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
当使能长文件名的时候 是不是必须是UNICODE编码?
#define _USE_LFN     3    /* 0 to 3 */
#define _MAX_LFN     255  /* Maximum LFN length to handle (12 to 255) */
#define _LFN_UNICODE   1 /* 0:ANSI/OEM or 1:Unicode */
   MDK 中编译 就出现了 错误
result = f_open(&MyFile, "test1.txt", FA_READ);
..\..\User\FatTest.c(77): error:  #167: argument of type "char *" is incompatible with parameter of type "const TCHAR *"
沙发
lanjackg2003| | 2014-8-22 11:15 | 只看该作者
#define _LFN_UNICODE   1 /* 0:ANSI/OEM or 1:Unicode */

你自己要求设置为UNICODE格式,修改为0就是ANSI

使用特权

评论回复
板凳
abcdotaabc|  楼主 | 2014-8-22 11:17 | 只看该作者
lanjackg2003 发表于 2014-8-22 11:15
#define _LFN_UNICODE   1 /* 0:ANSI/OEM or 1:Unicode */

你自己要求设置为UNICODE格式,修改为0就是ANSI ...

FatFs 在支持长文件名的时候是用unicode 编码的吧

使用特权

评论回复
地板
lanjackg2003| | 2014-8-22 11:28 | 只看该作者
abcdotaabc 发表于 2014-8-22 11:17
FatFs 在支持长文件名的时候是用unicode 编码的吧

这个没有研究过,
不过微软操作系统一般都不会超过256个字符长度
这个是轻量级的,相应会沿用或者减小这个长短.
不过我们一般不会使用这么长的

名字长度与UNICODE编码是没有什么关系的,
一般来说只跟你文件存储的方式有关系.

另外,你如果用unicode方式的话,传入的参数应该是TCHAR类型,而不是char类型的文件名字符串

使用特权

评论回复
5
abcdotaabc|  楼主 | 2014-8-22 11:35 | 只看该作者
lanjackg2003 发表于 2014-8-22 11:28
这个没有研究过,
不过微软操作系统一般都不会超过256个字符长度
这个是轻量级的,相应会沿用或者减小这个 ...

通常你们如何设置的?

使用特权

评论回复
6
aozima| | 2014-8-22 12:02 | 只看该作者
FatFs内置编码转换的。

使用特权

评论回复
7
想做大牛的小马| | 2014-8-22 12:42 | 只看该作者
plz add ccsbcs.c and then compile....

使用特权

评论回复
8
abcdotaabc|  楼主 | 2014-8-22 14:14 | 只看该作者
#define _LFN_UNICODE   0 /* 0:ANSI/OEM or 1:Unicode */
设置为0的时候就是ANSI 编码了  在使用长文件名下设置为0有什么问题,但是查看多个人的设置也是为0

使用特权

评论回复
9
lanjackg2003| | 2014-8-25 10:10 | 只看该作者
如果在单片机系统中,如果我使用的话我建议使用ANSI方式编码,毕竟单片机资源那么有限
如,"1234"暂用4个字节,而UNICODE方式会暂用8个.

使用特权

评论回复
10
ranwei1025| | 2017-4-11 20:36 | 只看该作者
本帖最后由 ranwei1025 于 2017-4-11 20:44 编辑

可以用下 ranfs fat模块 支持长文件名打开创建等 更简单 oschina.net/p/ranfs

使用特权

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

本版积分规则

136

主题

224

帖子

5

粉丝