这个问题是我在学习过程中发现的,因为这个问题很容易被忽视,于是记下来!
res = f_open (&file, "0:mp3list/playlist.txt",FA_READ|FA_WRITE|FA_CREATE_ALWAYS );
res = f_lseek (&file, file_num*FILE_NAME_LEN);
res = f_write (&file, file_name, FILE_NAME_LEN, &rw_num);
res = f_close (&file);
这里主要讨论f_open函数---
0:mp3list/playlist.txt-----是要打开的文件-----就是在挂载下的mp3list文件夹下的playlist.txt文件
FA_READ|FA_WRITE|FA_CREATE_ALWAYS---分别表示打开方式---可读--可写---当文件不存在是总是创建
那么问题就来了,我在调用上面函数的时候,总是不能创建打开--因为原来没有所以这里就应该是创建。但是ff9文件系统的其它很多函数都是可以使用正常的,于是在这里卡了好久。最后翻阅英文数据网页,再次研究了一下,结果恍然大悟。
f_open函数只是打开创建文件,而在上面的调用中是含有文件夹的,而这个文件夹一开始是没有的,所以不成功。于是马上调用f_mkdir函数创建文件夹------成功了。
问题很简单,但是不容易发现,记之勉之!
本文记录了作者在使用FF9文件系统时遇到的一个容易忽视的问题:尝试通过f_open函数直接创建带路径的文件失败。文中详细解释了解决方案——先使用f_mkdir函数创建所需目录。
1万+

被折叠的 条评论
为什么被折叠?



