void Data_Backup(void)
{
SD_fig=f_close(&file_log);
SD_fig=f_open(&file_data, "MBus/data.txt", FA_WRITE);
SD_fig=f_close(&file_data);
SD_fig=f_open(&fileO_data, "MBus/O_data.txt", FA_WRITE);
SD_fig=f_close(&fileO_data);
SD_fig=f_open(&fileR_data, "MBus/R_data.txt", FA_WRITE);
SD_fig=f_close(&fileR_data);
//SD_fig=f_close(&file_data);
Time_switch();
File_Name[0]='H';
File_Name[1]='I';
File_Name[2]='S';
File_Name[3]='T';
File_Name[4]='O';
File_Name[5]='R';
File_Name[6]='Y';
File_Name[7]='/';
File_Name[8]=file_data_buff[0];
File_Name[9]=file_data_buff[1];
File_Name[10]=file_data_buff[2];
File_Name[11]=file_data_buff[3];
File_Name[12]=file_data_buff[5];
File_Name[13]=file_data_buff[6];
File_Name[14]=file_data_buff[8];
File_Name[15]=file_data_buff[9];
SD_fig=f_rename("MBus",File_Name);
if(SD_fig == FR_EXIST)
{
SD_fig=f_unlink(File_Name);
SD_fig=f_rename("MBUS",File_Name);
}
}
代码如上。
Mbus是个文件夹,下面有四个子文件。
每当程序运行过SD_fig=f_rename("MBus",File_Name);这句的时候,SD_fig = FR_EXIST.我可以确定之前没有这个名字的文件夹。同时,我的数组File_Name里的值全部变成了一些乱七八糟的值。
不知道为什么会出现这种情况,我试过如果 直接用SD_fig=f_rename("MBus","123");是没问题的。为什么用个变量就不行了,而且那数组为什么会变?求大神帮助啊 !!![/mw_shl_code] |