编译环境: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 */
)
3 个解决方案
#1
sprintf (dir_path, "/%d-%d-%d", year, month, day);
sprintf (file_path, "/%d-%d-%d/%d-%d-%d", year, month, day, hour, minute, second);
#2
谢谢。
#3
楼主,能不能分享下代码 谢谢.. 1114631238@qq.com
#1
sprintf (dir_path, "/%d-%d-%d", year, month, day);
sprintf (file_path, "/%d-%d-%d/%d-%d-%d", year, month, day, hour, minute, second);
#2
谢谢。
#3
楼主,能不能分享下代码 谢谢.. 1114631238@qq.com