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

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>();
        //! 获取全部png

       hlFileIO.hfjGetAllFileListByExtension(hbStr_DictionaryPath,             ref hbListStr_AllFile, ".png");

    }

    //! 获取全部png

    hlFileIO.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.png
                    string 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.kler.cn/a/302042.html

相关文章:

  • 嵌入式AI STM32部署卷积神经网络的魔法棒
  • Spark生态圈
  • 多模态论文笔记——LLaVA
  • 设计模式-创建型-工厂方法模式
  • v语言介绍
  • Java中处理if-else的几种高级方法
  • 软件测试中常用模型分析
  • 【编程底层思考】性能监控和优化:JVM参数调优,诊断工具的使用等。JVM 调优和线上问题排查实战经验总结
  • 【C语言从不挂科到高绩点】17-C语言中的宏定义
  • 云服务器 卸载mysql5并安装mysql8(图文)
  • docker-compose 部署 flink
  • 笔试强训day10
  • C#基础(10)变长参数和参数默认值
  • 数据结构之数组矩阵存储
  • 树莓派安装 OpenCV 教程
  • 110个oracle常用函数总结
  • uniapp中基于vue3实现输入验证码功能
  • Android 地图搜索商家,检索关键字(高德地图,百度地图),地址搜索(1)
  • windows 显示进程地址空间
  • win11下面的virtualenv的使用(没写完)
  • Excel文档的读取(3)
  • 93、k8s之hpa+helm
  • AI prompt(提示词)
  • 根据ArrayList<Object>中对象的多个属性值进行模糊匹配,并找到所有匹配的对象
  • 企业应该如何安全上网,软件防查盗版,企业防盗版
  • uniapp如何监听页面滚动?