FatFs检测并建立多层目录并更改文件名

2024-03-03 01:32

本文主要是介绍FatFs检测并建立多层目录并更改文件名,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

FatFs检测文件路径是否存在,不存在就建立多层目录,最后更改文件名

if(W_Dresult==FR_OK) 
{														wifi_dp_wav_file_status=0;start_downloading=0;/*************************************遍历创建文件夹*************************************************************/u8 opendir_err = 0;   //错误提示char SonPath[10][50]; //最多10层,每层最多50字符char RootPath[200];   //最低已存在路径memset(SonPath, '\0', sizeof(SonPath)); //初始化memcpy(RootPath, DownFileName, sizeof(DownFileName));u8 num = 0;           // 剔除的次数do                      //遍历寻找文件夹{char *dot = strrchr(RootPath, '\\');   //剔除一层memcpy(SonPath[num], dot, &RootPath[strlen(RootPath)] - dot);  //保存子目录for(int i=0;i<dot-RootPath;i++) RootPath[dot-RootPath+i] = '\0';W_Dresult = f_opendir(&W_Ddir, RootPath); //检测文件夹if(W_Dresult == FR_OK){printf(">> 文件夹存在[%s]\r\n",RootPath);break;}else{printf(">> 文件夹打开错误 - %d [%s]\r\n",W_Dresult, RootPath);if(W_Dresult == FR_NO_PATH){opendir_err = 1;num ++;continue;}}}while(1);if(opendir_err == 1){//遍历创建文件夹opendir_err = 0;for(int i=0;i<num;i++){memcpy(&RootPath[strlen(RootPath)], SonPath[num-i], strlen(SonPath[num-i]));W_Dresult = f_mkdir(RootPath);if(W_Dresult == FR_OK) { printf(">> 创建文件夹成功[%s]\r\n", RootPath); }else printf(">> 创建文件夹失败 - %d [%s]\r\n",W_Dresult, RootPath);}}
/****************************************************************************************/		W_Dresult = f_rename(recfilename,DownFileName);  //更改临时的文件名printf(">> 云端文件名:%s\r\n",DownFileName);if(W_Dresult == FR_OK) printf(">> 更改文件名成功 - %s\r\n",DownFileName);else printf(">> 更改文件名失败 - %d\r\n",W_Dresult);if(W_Dresult == FR_EXIST){printf(">> 文件已存在,删除旧文件\r\n");W_Dresult = f_unlink(DownFileName);  //删除旧文件if(W_Dresult == FR_OK) {W_Dresult = f_rename(recfilename,DownFileName);  //更改临时的文件名if(W_Dresult == FR_OK) printf(">> 再次更改文件名成功 - %s\r\n",DownFileName);else printf(">> 再次更改文件名失败 - %d\r\n",W_Dresult);}else printf(">> 再次更改文件名失败 - %d\r\n",W_Dresult);}return;
}

 

这篇关于FatFs检测并建立多层目录并更改文件名的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/768038

相关文章

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

CentOS7更改默认SSH端口与配置指南

《CentOS7更改默认SSH端口与配置指南》SSH是Linux服务器远程管理的核心工具,其默认监听端口为22,由于端口22众所周知,这也使得服务器容易受到自动化扫描和暴力破解攻击,本文将系统性地介绍... 目录引言为什么要更改 SSH 默认端口?步骤详解:如何更改 Centos 7 的 SSH 默认端口1

SpringBoot内嵌Tomcat临时目录问题及解决

《SpringBoot内嵌Tomcat临时目录问题及解决》:本文主要介绍SpringBoot内嵌Tomcat临时目录问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录SprinjavascriptgBoot内嵌Tomcat临时目录问题1.背景2.方案3.代码中配置t

springboot上传zip包并解压至服务器nginx目录方式

《springboot上传zip包并解压至服务器nginx目录方式》:本文主要介绍springboot上传zip包并解压至服务器nginx目录方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录springboot上传zip包并解压至服务器nginx目录1.首先需要引入zip相关jar包2.然

Spring LDAP目录服务的使用示例

《SpringLDAP目录服务的使用示例》本文主要介绍了SpringLDAP目录服务的使用示例... 目录引言一、Spring LDAP基础二、LdapTemplate详解三、LDAP对象映射四、基本LDAP操作4.1 查询操作4.2 添加操作4.3 修改操作4.4 删除操作五、认证与授权六、高级特性与最佳

Linux修改pip临时目录方法的详解

《Linux修改pip临时目录方法的详解》在Linux系统中,pip在安装Python包时会使用临时目录(TMPDIR),但默认的临时目录可能会受到存储空间不足或权限问题的影响,所以本文将详细介绍如何... 目录引言一、为什么要修改 pip 的临时目录?1. 解决存储空间不足的问题2. 解决权限问题3. 提

Linux文件名修改方法大全

《Linux文件名修改方法大全》在Linux系统中,文件名修改是一个常见且重要的操作,文件名修改可以更好地管理文件和文件夹,使其更具可读性和有序性,本文将介绍三种在Linux系统下常用的文件名修改方法... 目录一、引言二、使用mv命令修改文件名三、使用rename命令修改文件名四、mv命令和rename命

Python如何实现PDF隐私信息检测

《Python如何实现PDF隐私信息检测》随着越来越多的个人信息以电子形式存储和传输,确保这些信息的安全至关重要,本文将介绍如何使用Python检测PDF文件中的隐私信息,需要的可以参考下... 目录项目背景技术栈代码解析功能说明运行结php果在当今,数据隐私保护变得尤为重要。随着越来越多的个人信息以电子形

Java下载文件中文文件名乱码的解决方案(文件名包含很多%)

《Java下载文件中文文件名乱码的解决方案(文件名包含很多%)》Java下载文件时,文件名中文乱码问题通常是由于编码不正确导致的,使用`URLEncoder.encode(filepath,UTF-8... 目录Java下载文件中文文件名乱码问题一般情况下,大家都是这样为了解决这个问题最终解决总结Java下

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学