CH375问题

i = ExecCommand( CMD_FileModify, 4+2+2+1 ); /* 修改当前文件的信息,修改日期和长度,参数长度为sizeof(mCmdParam.Modify.mFileSize)+... */ 这句话中的4+2+2+1 这些数字是什么意思呀?现在我的在U盘里创建的文件的时间都是2004.1.1 不知道怎么回事?

1、4+2+2+1是Modify这个结构分支中变量占用的字节数据,查看头文件关于mCmdParam这个结构的定义 2、这是默认的时间,根据需要修改Modify.mFileDate,再ExecCommand( CMD_FileModify, 4+2+2+1 );,就可以修改文件的修改日期了


我现在指向修改日期,不修改文件长度,该如何修改呢?4+2+2+1这里是不是要改动呀?望指导。


mCmdParam.Modify.mFileSize保存了数据长度,只要这个变量不变就可以了。


下载CH375HM.ZIP,参考CH375HM.PDF中关于CMD_FileModify的解释吧,“4+2+2+1”是指Modify命令的参数数量


现在导出数据时如果U盘中已经有了导出的文件,好像不能删除呀,数据导出的不正确,如果U盘中没有要导出的文件数据是对的,这是怎么回事,怎么处理?


那需要看下你的文件名是否为“8+3”的格式了,还有是否存在小写文件名存在等等,都可能导致你读取数据的时候出现问题。


8+3 这是什么意思?


不超过8个字节的文件名,不超过3个字节的后缀名


GetTime(); mCmdParam.Modify.mFileAttr = ATTR_READ_ONLY; mCmdParam.Modify.mFileTime = MAKE_FILE_TIME(buffTime[3],buffTime[4],buffTime[5]); mCmdParam.Modify.mFileDate = MAKE_FILE_DATE(2000+buffTime[0], buffTime[1], buffTime[2]); mCmdParam.Modify.mFileSize = 0xffffffff; ExecCommand(CMD_FileModify,4+2+2+1); mCmdParam.Close.mUpdateLen=1; ExecCommand(CMD_FileClose,1); 我程序这样写,为什么TXT文件没有修改日期和时间呢?


默认的我们的子程序在操作的时候,只有修改时间,而没有设置创建时间,如果你需要的话,可以去看下CH375LIB。ZIP里面MCS51文件夹下面FILE-LIB4下面的EXAM10,这个例子里面有设置创建时间的程序,您可以参考。


我就是说修改时间,我程序哪样写也没有修改时间,是怎么回事?


ExecCommand(CMD_FileModify,4+2+2+1)的返回值怎么不判断呢,可能没成功的 另外MAKE_FILE_TIME、MAKE_FILE_DATE的参数先可以简单一点啊,假如有问题也好查阿 如:MAKE_FILE_TIME( 16, 49, 28 ); MAKE_FILE_DATE( 2010, 12, 8 );


GetTime(); mCmdParam.Modify.mFileAttr = ATTR_READ_ONLY; mCmdParam.Modify.mFileTime = MAKE_FILE_TIME(buffTime[3],buffTime[4],buffTime[5]); mCmdParam.Modify.mFileDate = MAKE_FILE_DATE(2000+buffTime[0], buffTime[1], buffTime[2]); mCmdParam.Modify.mFileSize = cunt*34; ExecCommand(CMD_FileModify,4+2+2+1); ExecCommand(CMD_FileClose,1); 这样写就有时候有修改时间 有时候没有,导出的数据还会出错,这是什么原因啊,我每次写入34字节,cunt是写出次数


当我的U盘中含有CH_01.TXT时,如果我再导出这个文件名的文件时,为什么不能导出数据呢?


不是说可以删除旧的文件重新建立吗?怎么不能覆盖呢?


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