你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

FATFS创建文件夹时如何添加“创建时间”?

[复制链接]
D-BOY 提问时间:2017-12-11 15:22 /
如题!
通过实现get_fattime函数创建文件时是可以添加“创建时间”的,但是创建文件夹时却不能,请各位帮忙,谢谢!
另外,f_utime添加的是“修改时间”
收藏 1 评论6 发布时间:2017-12-11 15:22

举报

6个回答
D-BOY 回答时间:2017-12-11 16:36:52
本帖最后由 D-BOY 于 2017-12-11 16:37 编辑

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

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2 结贴奖励

查看全部评分

回答时间:2017-12-11 15:37:39
这个函数需要自己写,如下说明:
http://elm-chan.org/fsw/ff/doc/fattime.html
D-BOY 回答时间:2017-12-11 15:39:10
安 发表于 2017-12-11 15:37
这个函数需要自己写,如下说明:
http://elm-chan.org/fsw/ff/doc/fattime.html

谢谢,这个函数我自己写过了,现在的问题是文件夹无法添加“创建时间”,而文件却可以
回答时间:2017-12-11 15:45:19
我看代码里面有,楼主看一下创建文件夹的代码有没有:
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);
D-BOY 回答时间:2017-12-11 16:08:15
安 发表于 2017-12-11 15:45
我看代码里面有,楼主看一下创建文件夹的代码有没有:
if (res == FR_OK) res = dir_register(&dj);        /* Reg ...

多谢!f_mkdir里面是有这段代码的,但文件夹还是没有“创建时间”实际情况参考附件图片
file.jpg
folder.jpg
ccxzjz 回答时间:2019-9-5 15:22:07
老铁,怎么获取文件的创建时间,f_stat()函数获取的是最近修改的时间

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版