CH376S 为指定文件设置创建日期和时间 不成功,调用函数返回14

/* 为指定文件设置创建日期和时间 */

/* 输入参数:   原始文件名在iFileName中, 新的创建日期和时间: iCreateDate, iCreateTime */

/* 返回状态码: USB_INT_SUCCESS = 设置成功,

               其它状态码参考CH376INC.H */

UINT8SetFileCreateTime( PUINT8 iFileName, UINT16 iCreateDate, UINT16 iCreateTime )

{

UINT8s;

s = CH376FileOpen( iFileName );  /* 打开文件 */

mStopIfError( s );

if ( s == USB_INT_SUCCESS ) 

{

/* 文件读写操作等... */

s = CH376DirInfoRead( );  /* 读取当前文件的目录信息FAT_DIR_INFO,将相关数据调到内存中 */

mStopIfError( s );

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 ) 

{  /* 成功修改并保存 */

/* 文件读写操作等... */

}

mStopIfError( s );

}

CH376FileClose( FALSE );  /* 关闭文件 */

}

return( s );

}



s=SetFileCreateTime("/TEST.TXT\0", MAKE_FILE_DATE( 2022,7, 24 ), MAKE_FILE_TIME( 20, 13, 30));

大家好,调用这个函数修改时间,最后return是ox14,文件日期还是2004.1.1,请问有可能是什么原因?


我是按照EXAM11进行的,能修改文件名,就是日期修改不了,文件内容也能正常读写,请问大家可能是什么原因?


您好,0x14的返回值表示文件已经打开,您可以判断一下,您是不是之前对这个文件操作后,没有File_close,导致调用修改的创建时间的函数的时候,返回了这个错误。


只有登录才能回复,可以选择微信账号登录