文件系统打开、创建文件失败,无效文件名?

软件需要实现数据写入内存卡以TXT的格式,我以一个字符数组来作为需要打开或创建的文件名,结果会报错 FR_INVALID_NAME 0X06,文件名无效。
但是如果把文件名的数组直接改成字符就不会报错并正确创建TXT文件,想知道这是为什么,主要我的这个文件名是与当前时间相关的变量,下面是贴图:

图片说明图片说明图片说明

1个回答

两个可能:
1. BufPathName[14] 要加上 NULL.
2. f_open() 不支持长文件名.

2 的话找找 ffconf.h 然后将 _USE_LFN 设为 >= 1 的值.

chunlinhan00
chunlinhan00 回复qq_39060277: 另外刚刚注意到你的档名还没超过 8.3 filename 的限制,所以问题应该就是 1 才对了。
一年多之前 回复
chunlinhan00
chunlinhan00 回复qq_39060277: 就是在 BufPathName[13] = 't'; 后面加一行 BufPathName[14] = NULL;
一年多之前 回复
qq_39060277
qq_39060277 您好,我的情况应该不是情况2,因为直接把文件名从数组改成字符串是不会出错的,长度没变;请问您说的这个加NULL是在数组的什么地方加啊,感谢
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐