C# WinForm制作一个批量转化文件格式的小工具

 更新时间:2023年11月16日 11:27:35   作者:Dm_dotnet  
在生活中有时候会遇到批量转换格式的需求,一个个点太麻烦了,一个能够实现批量文件格式转换的工具非常有用,所以本文小编使用C# WinForm制作一个批量转化文件格式的小工具,文中有具体实现代码,需要的朋友可以参考下

前言

在生活中有时候会遇到批量转换格式的需求,一个个点太麻烦了,一个能够实现批量文件格式转换的工具非常有用。我这次就遇到了需要批量转换文件格式的需求,比如需要将doc文件转换为docx文件。

为这个小工具设定了两个基本功能,一个是选定一个文件夹后,将文件夹下的所有文件都转换为指定文件,另一个是批量选择文件将选中的文件转换为指定格式。

全部转换为指定格式的效果如下所示:

批量转换为指定格式的效果如下所示:

具体实现

界面的设计如下所示:

为了方便演示,使用的是原生控件,就是1个label、1个textbox、3个button。

确定按钮的代码如下:

  if(textBox1.Text != " " && textBox1.Text.StartsWith(".")) 
  {
      requiredExtension = textBox1.Text;
      MessageBox.Show($"已将需要的后缀名设定为:{requiredExtension}");
  }
  else
  {
      MessageBox.Show($"请设置正常的后缀名,以.开头");
  }
          

全部转换按钮的代码如下:

   if (requiredExtension != null)
   {
       // 创建一个FolderBrowserDialog对象
       FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog();
​
       // 设置对话框的标题
       folderBrowserDialog.Description = "选择需要转换格式的文件夹";
​
       // 设置默认的根文件夹,如果需要的话
       // folderBrowserDialog.RootFolder = Environment.SpecialFolder.MyComputer;
​
       // 显示文件夹选择对话框
       DialogResult result = folderBrowserDialog.ShowDialog();
​
       if (result == DialogResult.OK)
       {
           selectedFolderPath = folderBrowserDialog.SelectedPath;
           MessageBox.Show($"您选中的文件夹路径为:{selectedFolderPath}");
           // 调用 GetFiles 方法获取文件夹下的所有文件路径
           string[] files = Directory.GetFiles(selectedFolderPath);
           foreach (var file in files)
           {
               string fileExtension = Path.GetExtension(file);
               if (fileExtension != requiredExtension)
               {
                   // 构造新的文件路径,替换原来的后缀名
                   string newFilePath = Path.ChangeExtension(file, requiredExtension);
​
                   // 使用 File.Move 重命名文件
                   File.Move(file, newFilePath);
​
               }
           }
           MessageBox.Show($"转换文件格式成功,本次转化文件数为:{files.Length}");
       }
       else
       {
           MessageBox.Show("您本次没有选中文件夹!!!");
       }
   }
   else
   {
       MessageBox.Show("请先设定需要的后缀名!!!");
   }

批量转换的代码如下:

  if (requiredExtension != null)
  {
      OpenFileDialog openFileDialog = new OpenFileDialog();
      openFileDialog.Filter = "All Files (*.*)|*.*";
      openFileDialog.Multiselect = true;
      if (openFileDialog.ShowDialog() == DialogResult.OK)
      {
          // 获取选中的文件路径数组
          string[] selectedFiles = openFileDialog.FileNames;
          foreach (var file in selectedFiles)
          {
              string fileExtension = Path.GetExtension(file);
              if (fileExtension != requiredExtension)
              {
                  // 构造新的文件路径,替换原来的后缀名
                  string newFilePath = Path.ChangeExtension(file, requiredExtension);
​
                  // 使用 File.Move 重命名文件
                  File.Move(file, newFilePath);
​
              }
          }
          MessageBox.Show($"转换文件格式成功,本次转化文件数为:{selectedFiles.Length}");
      }
      else
      {
          MessageBox.Show("您本次没有选中任何文件!!!");
      }
​
  }
  else
  {
      MessageBox.Show("请先设定需要的后缀名!!!");
  }

最大的区别就是选中的是一个文件夹还是多个文件。

本示例全部源代码如下:

    public partial class Form1 : Form
    {
        string requiredExtension;
        string selectedFolderPath;
        public Form1()
        {
            InitializeComponent();
        }
​
        private void label1_Click(object sender, EventArgs e)
        {
​
        }
​
        private void button3_Click(object sender, EventArgs e)
        {
            if(textBox1.Text != " " && textBox1.Text.StartsWith(".")) 
            {
                requiredExtension = textBox1.Text;
                MessageBox.Show($"已将需要的后缀名设定为:{requiredExtension}");
            }
            else
            {
                MessageBox.Show($"请设置正常的后缀名,以.开头");
            }
          
                       
            
        }
​
        private void button1_Click(object sender, EventArgs e)
        {
            if (requiredExtension != null)
            {
                // 创建一个FolderBrowserDialog对象
                FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog();
​
                // 设置对话框的标题
                folderBrowserDialog.Description = "选择需要转换格式的文件夹";
​
                // 设置默认的根文件夹,如果需要的话
                // folderBrowserDialog.RootFolder = Environment.SpecialFolder.MyComputer;
​
                // 显示文件夹选择对话框
                DialogResult result = folderBrowserDialog.ShowDialog();
​
                if (result == DialogResult.OK)
                {
                    selectedFolderPath = folderBrowserDialog.SelectedPath;
                    MessageBox.Show($"您选中的文件夹路径为:{selectedFolderPath}");
                    // 调用 GetFiles 方法获取文件夹下的所有文件路径
                    string[] files = Directory.GetFiles(selectedFolderPath);
                    foreach (var file in files)
                    {
                        string fileExtension = Path.GetExtension(file);
                        if (fileExtension != requiredExtension)
                        {
                            // 构造新的文件路径,替换原来的后缀名
                            string newFilePath = Path.ChangeExtension(file, requiredExtension);
​
                            // 使用 File.Move 重命名文件
                            File.Move(file, newFilePath);
​
                        }
                    }
                    MessageBox.Show($"转换文件格式成功,本次转化文件数为:{files.Length}");
                }
                else
                {
                    MessageBox.Show("您本次没有选中文件夹!!!");
                }
            }
            else
            {
                MessageBox.Show("请先设定需要的后缀名!!!");
            }
        }
​
        private void button2_Click(object sender, EventArgs e)
        {
            if (requiredExtension != null)
            {
                OpenFileDialog openFileDialog = new OpenFileDialog();
                openFileDialog.Filter = "All Files (*.*)|*.*";
                openFileDialog.Multiselect = true;
                if (openFileDialog.ShowDialog() == DialogResult.OK)
                {
                    // 获取选中的文件路径数组
                    string[] selectedFiles = openFileDialog.FileNames;
                    foreach (var file in selectedFiles)
                    {
                        string fileExtension = Path.GetExtension(file);
                        if (fileExtension != requiredExtension)
                        {
                            // 构造新的文件路径,替换原来的后缀名
                            string newFilePath = Path.ChangeExtension(file, requiredExtension);
​
                            // 使用 File.Move 重命名文件
                            File.Move(file, newFilePath);
​
                        }
                    }
                    MessageBox.Show($"转换文件格式成功,本次转化文件数为:{selectedFiles.Length}");
                }
                else
                {
                    MessageBox.Show("您本次没有选中任何文件!!!");
                }
​
            }
            else
            {
                MessageBox.Show("请先设定需要的后缀名!!!");
            }
        }
    }
}

以上就是C# WinForm制作一个批量转化文件格式的小工具的详细内容,更多关于C# WinForm文件格式工具的资料请关注脚本之家其它相关文章!

相关文章

  • C#中方法的直接调用、反射调用与Lambda表达式调用对比

    C#中方法的直接调用、反射调用与Lambda表达式调用对比

    这篇文章主要介绍了C#中方法的直接调用、反射调用与Lambda表达式调用对比,本文着重讲解了方法的三种调用方法以及它们的性能对比,需要的朋友可以参考下
    2015-06-06
  • C#的TimeSpan案例详解

    C#的TimeSpan案例详解

    这篇文章主要介绍了C#的TimeSpan案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • C# 文件安全管理需要注意的

    C# 文件安全管理需要注意的

    这篇文章主要介绍了C# 文件安全管理需要注意的,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
    2021-03-03
  • Unity3D实现批量下载图片功能

    Unity3D实现批量下载图片功能

    这篇文章主要为大家详细介绍了Unity3D实现批量下载图片功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • 深入理解StringBuilder的使用方法

    深入理解StringBuilder的使用方法

    下面小编就为大家带来一篇深入理解StringBuilder的使用方法。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-05-05
  • 详解C#用new和override来实现抽象类的重写区别

    详解C#用new和override来实现抽象类的重写区别

    本篇文章主要介绍了详解C#用new和override来实现抽象类的重写区别,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧。
    2017-02-02
  • C#实现图片切割的方法

    C#实现图片切割的方法

    这篇文章主要介绍了C#实现图片切割的方法,涉及C#使用Graphics实现图片属性的相关设置、保存等操作技巧,需要的朋友可以参考下
    2017-06-06
  • c#如何实现接口事件

    c#如何实现接口事件

    这篇文章主要介绍了c#如何实现接口事件,帮助大家更好的理解和学习c#,感兴趣的朋友可以了解下
    2020-10-10
  • 如何用C#实现压缩文件

    如何用C#实现压缩文件

    话说当今压缩市场三足鼎立,能叫上名号的有zip、rar、7z。其中zip是压缩界的鼻祖,在各大平台上的流行度最广,rar是商业软件,压缩率和效率都是很高的。7z是开源的,属于后起之秀。这篇文章介绍了如何使用ICSharpCode组件,在windows平台下zip的压缩与解压的方法
    2021-06-06
  • C# 数组实例介绍(图文)

    C# 数组实例介绍(图文)

    数组即是一组相同类型组合在一起,使用一个通用的名称,通过分配的下标访问的数据集合中的元素。
    2014-08-08

最新评论