当前位置: 首页 > news >正文

C# 批量更改文件后缀名称

 解决问题思路

解决固定文件夹下更改文件后缀名,采用轮询的方式,

流程如下:

  1. 获取当前文件名(带后缀的文件名)
  2. 截取文件名称,去掉后缀
  3. 另存为带更改后的后缀文件

注意:采用第三方插件,附:源码和插件

开发工具:vs2022

库环境:.net Framework4.8

引用插件库:LongHunFramework

二、程序介绍

1.获取需要修改文件所在文件夹,及需要修改文件的后缀名


string dirPath = "G:\\Code\\demo2\\GRJ2A\\bin\\data\\map\\tiles";//Console.ReadLine();if (Directory.Exists(dirPath)){string hbStr_DictionaryPath = dirPath;List<string> hbListStr_AllFile = new List<string>();string dirPath = "G:\\Code\\demo2\\GRJ2A\\bin\\data\\map\\tiles";//Console.ReadLine();if (Directory.Exists(dirPath)){string hbStr_DictionaryPath = dirPath;List<string> hbListStr_AllFile = new List<string>();//! 获取全部pnghlFileIO.hfjGetAllFileListByExtension(hbStr_DictionaryPath,             ref hbListStr_AllFile, ".png");}//! 获取全部pnghlFileIO.hfjGetAllFileListByExtension(hbStr_DictionaryPath, ref hbListStr_AllFile, ".png");}

dirPath路径为需要修改文件所在文件夹路径,操作前需要判断当前文件夹是否存在,如果存在可以执行下一步,如过不存在,则退出。

Ref:为net程序返回变量,hbListStr_AllFile变量前加上ref后,hbListStr_AllFile会输出该方法的返回值;

  1. 遍历修改文件后缀名,并保存
//! 遍历文件解决for (int i = 0; i < hbListStr_AllFile.Count; i++){string nowOldFileFullName = hbListStr_AllFile[i];//获取当前文件全路径,  例如 c:/83838/3/3/3/43/4/122.pngstring hbOldFileName = Path.GetFileName(nowOldFileFullName);//返回 122.png 这样的文件名string hbDictionary = Path.GetDirectoryName(nowOldFileFullName);// 返回 目录,例如 "c:/83838/3/3/3/43/4"string hbOldFileOnlyName  = Path.GetFileNameWithoutExtension(nowOldFileFullName);// 获取"122"这样的名称string hbNewFileName = hbOldFileOnlyName + ".jpg"; //新的名字 "122.jpg"string newFileFullPath = Path.Combine(hbDictionary, hbNewFileName); //新文件的全路径, 例如 " c:/83838/3/3/3/43/4/122.jpg"if (File.Exists(newFileFullPath)){Console.WriteLine($"因为已经存在[{newFileFullPath}], 所以没有对文件[{nowOldFileFullName}]进行操作!");}else{hlFileIO.hfjMoveAFile(nowOldFileFullName, newFileFullPath, true);}Console.WriteLine($"{i}/{hbListStr_AllFile.Count} 已修改完成...");}

提示:如果想修改多层级的文件夹,需要用到递归算法,递归每一层级的文件夹下的文件

亲测可用

http://www.lryc.cn/news/441736.html

相关文章:

  • KIC算法介绍及pyrosetta示例代码
  • 【论文串烧】多媒体推荐中的模态平衡学习 | 音视频语音识别中丢失导致的模态偏差对丢失视频帧鲁棒性的影响
  • 【C语言二级考试】循环结构设计
  • 诗文发布模板(python代码打造键盘录入诗文自动排版,MarkDown源码文本)
  • GO主流开源框架
  • LeetCode:2398. 预算内的最多机器人数目 双指针+单调队列,时间复杂度O(n)
  • oracle 插入date日期类型的数据、插入从表中查出的数据,使用表中的默认数据
  • 物流系统打单软件 佳易王物流运单怎么打印教程
  • 二叉树计算
  • Java并发执行举例
  • Java 基础知识九(网络编程)
  • 深入解析Go语言的类型方法、接口与反射
  • C#中线程池【异步】
  • OpenAI 刚刚推出 o1 大模型!!突破LLM极限
  • 【Vmware16安装教程】
  • Delphi5利用DLL实现窗体的重用
  • 使用JavaWeb开发注册功能时,校验用户名是否已存在的一个思路(附代码)
  • 前端常见面试-首页性能提升、项目优化
  • 卷王阿里又开启价格战,大模型价格降价85%!
  • Java中的异步编程模式:CompletableFuture与Reactive Programming的实战
  • 7iDU AMP田岛绣花机驱动器维修0J2100400022
  • 部署自己的对话大模型,使用Ollama + Qwen2 +FastGPT 实现
  • vue websocket 使用
  • Spring Boot 入门面试五道题
  • 【鸿蒙】HarmonyOS NEXT开发快速入门教程之ArkTS语法装饰器(上)
  • 国产品牌 KTH1701系列 高性能、低功耗、全极磁场检测霍尔开关传感器
  • 如何不终止容器退出Docker Bash会话
  • 杰理芯片各型号大全,方案芯片推荐—云信通讯
  • 解决服务器首次请求异常耗时问题
  • VS code 创建与运行 task.json 文件