WCH沁恒单片机
直播中

王婷

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

CH376修改文件创建时间不成功怎么解决?

前面打了很多字,详细的描写了调试的过程,点提交提示我没有登录,有点累了,简单描述一下吧


文件创建、读写都没问题,修改文件创建时间不成功,所有想到的方法试过,时间一直都是2004/1/1,什么原因,
1、修改宏的时间,失败
2、使用例程,失败
3、自己写函数,失败


宏时间:
#ifndef    DEF_WILDCARD_CHAR
#define    DEF_WILDCARD_CHAR        0x2A            /* 路径名的通配符 '*' */
#define    DEF_SEPAR_CHAR1        0x5C            /* 路径名的分隔符 '' */
#define    DEF_SEPAR_CHAR2        0x2F            /* 路径名的分隔符 '/' */
#define    DEF_FILE_YEAR            2017            /* 默认文件日期: 2004年 */
#define    DEF_FILE_MONTH            12                /* 默认文件日期: 1月 */
#define    DEF_FILE_DATE            1                /* 默认文件日期: 1日 */
#endif
例程:
UINT8    SetFileCreatetime( PUINT8 iFileName, UINT16 iCreateDate, UINT16 iCreateTime )
{
    UINT8    s;
   
    printf("iFileName : %srn", iFileName);
    s = CH376FileOpen( iFileName );  /* 打开文件 */
    if ( s == USB_INT_SUCCESS ) {
        /* 文件读写操作等... */
        s = CH376DirInfoRead( );  /* 读取当前文件的目录信息FAT_DIR_INFO,将相关数据调到内存中 */
        if ( s == USB_INT_SUCCESS ) {
            buf[0] = (UINT8)iCreateTime;  /* 文件创建的时间,低8位在前 */
            buf[1] = (UINT8)(iCreateTime>>8);  /* 文件创建的时间,高8位在后 */
            CH376WriteOfsBlock( buf, STRUCT_OFFSET( FAT_DIR_INFO, DIR_CrtTime ), 2 );  /* 向内部缓冲区偏移地址DIR_CrtTime写入2个字节 */
            buf[0] = (UINT8)iCreateDate;  /* 文件创建的日期,低8位在前 */
            buf[1] = (UINT8)(iCreateDate>>8);  /* 文件创建的日期,高8位在后 */
            CH376WriteOfsBlock( buf, STRUCT_OFFSET( FAT_DIR_INFO, DIR_CrtDate ), 2 );  /* 向内部缓冲区偏移地址DIR_CrtDate写入2个字节 */
            s = CH376DirInfoSave( );  /* 保存文件的目录信息 */
            if ( s == USB_INT_SUCCESS ) {  /* 成功修改并保存 */
                /* 文件读写操作等... */
            }
            s = CH376DirInfoRead( );  /* 读取当前文件的目录信息FAT_DIR_INFO,将相关数据调到内存中 */
        }
        CH376FileClose( FALSE );  /* 关闭文件 */
    }
    return( s );
}


回帖(3)

董英灏

2022-7-6 15:39:26
哪一步出错?返回值多少?DirInfo可以读到吗?
另外,头文件不要修改。
举报

李伟

2022-7-6 15:39:36
返回值都没有问题,为0x14,头文件我只修改了时间,应该没关系,然而修改那里并没有用,那个宏怎么找都找不到哪里用到了,使用编译器工具查找发现,时间的这个宏并没有用上
举报

袁钧质

2022-7-6 15:39:48
注意文件中修改时间与创建时间的区别,查看文件属性。
修改时间属性,不是通过头文件修改的。
举报

更多回帖

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