FATFS建立以当前日期为名字的文件夹并在文件夹中建立当前时间为名字的txt文件

1.sprintf的使用

  Char DATA[10];

   Sprintf(DATA,”%d”,123)//“123”//将数组内的数按照指定的格式输出成字符串

2.输出2位宽度的数据

   %d --------------十进制输出

   %2d-------------以宽度2输出整型数,不足2位时,左补空格

   %02d-----------以宽度2输出整型数,不足2位时,左补0

   %.2d------------以宽度2输出整型数,不足2位时,左补0

3.建立以日期为名字文件夹,在文件夹建立以当前时间为名字的TXT文件

  FATFS下建立文件夹res=f_mkdir(“18-09-01”);//输入参数是字符串

  char temp1[10]; //建立一个存放日期的字符串数组

  char Data[10]; //存放RTC获得日期单个字符数组

  Data[0]=RTC_year;//18

  Data[1]=”-”;

  Data[2]=RTC-month //09

  Data[3]=”-”;

  Data[4]=RTC-date  //01

  sprintf(temp1,"%.2d%c%.2d%c%.2d",Data[0],Data[1],Data[2],Data[3],Data[4]);

  //把单个字符以指定格式输出到字符串数组temp1=”18-09-01”

  res=f_mkdir(temp1);         //建立文件夹

FATFS下建立当前时间为名字的TXT文件

  res=f_open(&file,”0:/18-09-01/20-23-00.txt”,FA_CREATE_NEW|FA_WRITE);

  char temp2[30];//建立一个存放时间的字符串数组

  char Data[30];//建立一个存放RTC获得当前时间的数组

  Data[0]='0';

  Data[1]=':';

  Data[2]='/';

  Data[3]=RTC-year; //18年

  Data[4]='-';

  Data[5]=RTC-month; //09月

  Data[6]='-';

  Data[7]=RTC-data;  //01日

  Data[8]='/';

  Data[9]=RTC-hour;  //20点

  Data[10]='-';

  Data[11]=RTC-min;  //23分

  Data[12]='-';

  Data[13]=RTC-sec;  //00秒

  Data[14]='.';

  Data[15]='t';

  Data[16]='x';

  Data[17]='t';

   sprintf( temp2,"%c%c%c%.2d%c%.2d%c%.2d%c%.2d%c%.2d%c%.2d%c%c%c%c",

                Data[0],Data[1],Data[2],Data[3],Data[4],Data[5],

                Data[6],Data[7],Data[8],Data[9],Data[10],Data[11],

                Data[12],Data[13],Data[14],Data[15],Data[16],Data[17]

               );  //temp2=”0:/18-09-01/20-23-00.txt”,

res=f_open(&file,temp2,FA_CREATE_NEW|FA_WRITE); //建立TXT文件

要删除SD卡文件夹,需要使用FATFS文件系统提供的相关函数。以下是一个简单的例子,可以让你了解如何在STM32上使用FATFS文件系统删除SD卡文件夹。 首先,你需要初始化FATFS文件系统,包括挂载SD卡、打开文件夹等操作。下面是一个初始化FATFS的示例代码: ```c FATFS fs; FRESULT res; DIR dir; res = f_mount(&fs, "", 1); if (res != FR_OK) { // 处理挂载失败的情况 } res = f_opendir(&dir, "/folder_name"); if (res != FR_OK) { // 处理打开文件夹失败的情况 } ``` 上面的代码,`f_mount`函数用于挂载FATFS文件系统,`f_opendir`函数用于打开指定的文件夹。 接下来,你可以使用`f_readdir`函数遍历文件夹的所有文件和子文件夹,然后使用`f_unlink`函数删除子文件夹和其文件。下面是一个示例代码: ```c FILINFO fileInfo; while (f_readdir(&dir, &fileInfo) == FR_OK && fileInfo.fname[0] != 0) { if (fileInfo.fattrib & AM_DIR) { // 如果是子文件夹,则递归删除 if (strcmp(fileInfo.fname, ".") != 0 && strcmp(fileInfo.fname, "..") != 0) { char path[64]; sprintf(path, "/folder_name/%s", fileInfo.fname); res = f_unlink(path); if (res != FR_OK) { // 处理删除失败的情况 } } } else { // 如果是文件,则直接删除 char path[64]; sprintf(path, "/folder_name/%s", fileInfo.fname); res = f_unlink(path); if (res != FR_OK) { // 处理删除失败的情况 } } } ``` 上面的代码,`f_readdir`函数用于读取文件夹文件信息,`f_unlink`函数用于删除文件文件夹。在遍历文件夹时,需要忽略`.`和`..`两个特殊的文件夹。 最后,你可以使用`f_closedir`函数关闭文件夹,以释放相关资源: ```c f_closedir(&dir); ``` 这样,你就可以使用FATFS文件系统在STM32上删除SD卡文件夹了。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值