Fatfs文件系统创建新文件夹及在该路径下创建文件

hello_mcu 2016-08-03 06:33:03
硬件:STM32F103,时钟芯片
编译环境:Keil
问题描述:用到了Fatfs文件系统。通过获取时钟的时间,想每天都创建一个新的文件夹,文件夹名字就是当天的日期(格式:年-月-日)。装置功能中有检测部分,遇到特殊的情况,在当天的文件夹下创建一个.txt文件,该文件的名字是当时时间(格式:时-分-秒.txt)。因为Fatfs利用f_mkdir,f_open分别创建文件夹和文件时,均需要const char*类型的参数;而时间取出来,我已由BCD转为int。
1、怎么将时间转为char类型的。
2、因为f_open是要求绝对路径的,所以需要写明路径,如何处理。(未开启相对路径,因为开启后,有些文件系统操作功能无法用)

举例:比如今天是2016-8-2,时间是6-25-30,如果想创建文件夹,就要写f_mkdir("2016-8-2");
要创建文件,就得f_open(&ftxt,"/2016-8-2/6-25-30",FA_CREATE_ALWAYS);
但是日期和时间一直都在变化,我想保存到数组里mytime_Date和mytime_Time里,最后就能直接f_mkdir(mytime_Date);f_open(&ftxt,/mytime_Date/mytime_Time,FA_CREATE_ALWAYS)。
请有经验的朋友指导下。


函数原型:FRESULT f_open (
FIL *fp, /* Pointer to the blank file object */
const char *path, /* Pointer to the file name 需要绝对路径*/
BYTE mode /* Access mode and file open mode flags */
)

FRESULT f_mkdir (
const char *path /* Pointer to the directory path */
)
...全文
3583 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
醉春秋 2017-08-30
  • 打赏
  • 举报
回复
楼主,能不能分享下代码 谢谢.. 1114631238@qq.com
hello_mcu 2016-08-16
  • 打赏
  • 举报
回复
引用 1 楼 sugar13 的回复:

sprintf (dir_path,  "/%d-%d-%d",          year, month, day);
sprintf (file_path, "/%d-%d-%d/%d-%d-%d", year, month, day, hour, minute, second);
谢谢。
失散糖 2016-08-03
  • 打赏
  • 举报
回复

sprintf (dir_path,  "/%d-%d-%d",          year, month, day);
sprintf (file_path, "/%d-%d-%d/%d-%d-%d", year, month, day, hour, minute, second);

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧