.NET 修改文件后缀名

168 阅读1分钟

代码

统一将文件后缀名修改为.bmp

using Microsoft.VisualBasic.Devices;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Serialization;

namespace ToBmp
{
    internal class Program
    {
        static void Main(string[] args)
        {
            string path = "C:\\Users\\Administrator\\Desktop\\file\\01.bmp";
            HandleInput(path);
        }

        private static void HandleInput(string path)
        {
            // 获取文件后缀
            string extension = Path.GetExtension(path).ToLower();


            if (extension.Equals(".pdf"))
            {  
                HandlePdf(path);
            }
            else if (extension.Equals(".bmp"))
            {
                HandleBmp(path);
            }
            else if (isImg(extension))
            {
                HandleImg(path);
            }
            else
            {
                throw new Exception("You need to input a PDF or image");
            }
        }

        private static void HandlePdf(string path)
        {
            Console.WriteLine("这是pdf文件");
        }

        private static void HandleBmp(string path)
        {
            Console.WriteLine("这是bmp文件");
        }

        private static void HandleImg(string path)
        {
            changeExtension(path, ".bmp");
        }

        private static void changeExtension(string filePath,string extension)
        {
            // 获取父目录
            string faPath = Path.GetDirectoryName(filePath);
            // 获取文件后缀
            string currentExtension = Path.GetExtension(filePath);
            // 修改该文件后缀名
            Computer myComputer = new Computer();
            DirectoryInfo dir = new DirectoryInfo(faPath);
            FileInfo[] files = dir.GetFiles();
            foreach (var file in files)
            {
                string newName = file.Name.Replace(currentExtension, extension);
                if (newName != file.Name)
                    myComputer.FileSystem.RenameFile(file.FullName, newName);
            }

        }

        private static bool isImg(string extension)
        {
            extension = extension.ToLower();
            List<string> list = new List<string>() { ".jpeg",".jpg",".png",".gif",".bmp"};
            bool result = false;
            for(int i = 0;i<list.Count; i++)
            {
                if (list[i].Equals(extension)) {
                    return true;
                }
            }
            return result;
        }

    }
}


参考

C#如何获取文件全路径、目录、扩展名、文件名称_C#教程_脚本之家 (jb51.net)