STM32/STM8技术william hill官网
直播中

周芸

7年用户 230经验值
私信 关注
[问答]

请问FATFS创建文件夹时如何添加创建时间?

如题!
通过实现get_fattime函数创建文件时是可以添加“创建时间”的,但是创建文件夹时却不能,请各位帮忙,谢谢!
另外,f_utime添加的是“修改时间”

回帖(5)

周芸

2018-12-13 08:57:05
本帖最后由 D-BOY 于 2017-12-11 16:37 编辑

多谢版主,问题解决!
f_mkdir内部使用的是ST_DWORD(dir + DIR_WrtTime, tm);        /* Created time */
实际上DIR_WrtTime是“修改时间”,添加“创建时间”应将DIR_WrtTime改为DIR_CrtTime。效果如图

举报

孙婷婷

2018-12-13 09:10:04
这个函数需要自己写,如下说明:
http://elm-chan.org/fsw/ff/doc/fattime.html
举报

周芸

2018-12-13 09:21:58
引用: TOPCB 发表于 2018-12-13 19:44
这个函数需要自己写,如下说明:
http://elm-chan.org/fsw/ff/doc/fattime.html

谢谢,这个函数我自己写过了,现在的问题是文件夹无法添加“创建时间”,而文件却可以
举报

孙婷婷

2018-12-13 09:32:30
我看代码里面有,楼主看一下创建文件夹的代码有没有:
if (res == FR_OK) res = dir_register(&dj);        /* Register the object to the directoy */
                        if (res != FR_OK) {
                                remove_chain(dj.fs, dcl);                        /* Could not register, remove cluster chain */
                        } else {
                                dir = dj.dir;
                                dir[DIR_Attr] = AM_DIR;                                /* Attribute */
                                ST_DWORD(dir + DIR_WrtTime, tm);        /* Created time */
                                st_clust(dir, dcl);                                        /* Table start cluster */
                                dj.fs->wflag = 1;
                                res = sync_fs(dj.fs);
举报

周芸

2018-12-13 09:38:42
引用: TOPCB 发表于 2018-12-13 20:06
我看代码里面有,楼主看一下创建文件夹的代码有没有:
if (res == FR_OK) res = dir_register(&dj);        /* Register the object to the directoy */
                        if (res != FR_OK) {

多谢!f_mkdir里面是有这段代码的,但文件夹还是没有“创建时间”实际情况参考附件图片

举报

更多回帖

发帖
×
20
完善资料,
赚取积分