C# WinForm制作一個(gè)批量轉(zhuǎn)化文件格式的小工具
前言
在生活中有時(shí)候會(huì)遇到批量轉(zhuǎn)換格式的需求,一個(gè)個(gè)點(diǎn)太麻煩了,一個(gè)能夠?qū)崿F(xiàn)批量文件格式轉(zhuǎn)換的工具非常有用。我這次就遇到了需要批量轉(zhuǎn)換文件格式的需求,比如需要將doc文件轉(zhuǎn)換為docx文件。
為這個(gè)小工具設(shè)定了兩個(gè)基本功能,一個(gè)是選定一個(gè)文件夾后,將文件夾下的所有文件都轉(zhuǎn)換為指定文件,另一個(gè)是批量選擇文件將選中的文件轉(zhuǎn)換為指定格式。
全部轉(zhuǎn)換為指定格式的效果如下所示:

批量轉(zhuǎn)換為指定格式的效果如下所示:

具體實(shí)現(xiàn)
界面的設(shè)計(jì)如下所示:

為了方便演示,使用的是原生控件,就是1個(gè)label、1個(gè)textbox、3個(gè)button。
確定按鈕的代碼如下:
if(textBox1.Text != " " && textBox1.Text.StartsWith("."))
{
requiredExtension = textBox1.Text;
MessageBox.Show($"已將需要的后綴名設(shè)定為:{requiredExtension}");
}
else
{
MessageBox.Show($"請(qǐng)?jiān)O(shè)置正常的后綴名,以.開頭");
}
全部轉(zhuǎn)換按鈕的代碼如下:
if (requiredExtension != null)
{
// 創(chuàng)建一個(gè)FolderBrowserDialog對(duì)象
FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog();
?
// 設(shè)置對(duì)話框的標(biāo)題
folderBrowserDialog.Description = "選擇需要轉(zhuǎn)換格式的文件夾";
?
// 設(shè)置默認(rèn)的根文件夾,如果需要的話
// folderBrowserDialog.RootFolder = Environment.SpecialFolder.MyComputer;
?
// 顯示文件夾選擇對(duì)話框
DialogResult result = folderBrowserDialog.ShowDialog();
?
if (result == DialogResult.OK)
{
selectedFolderPath = folderBrowserDialog.SelectedPath;
MessageBox.Show($"您選中的文件夾路徑為:{selectedFolderPath}");
// 調(diào)用 GetFiles 方法獲取文件夾下的所有文件路徑
string[] files = Directory.GetFiles(selectedFolderPath);
foreach (var file in files)
{
string fileExtension = Path.GetExtension(file);
if (fileExtension != requiredExtension)
{
// 構(gòu)造新的文件路徑,替換原來(lái)的后綴名
string newFilePath = Path.ChangeExtension(file, requiredExtension);
?
// 使用 File.Move 重命名文件
File.Move(file, newFilePath);
?
}
}
MessageBox.Show($"轉(zhuǎn)換文件格式成功,本次轉(zhuǎn)化文件數(shù)為:{files.Length}");
}
else
{
MessageBox.Show("您本次沒有選中文件夾?。?!");
}
}
else
{
MessageBox.Show("請(qǐng)先設(shè)定需要的后綴名!??!");
}
批量轉(zhuǎn)換的代碼如下:
if (requiredExtension != null)
{
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "All Files (*.*)|*.*";
openFileDialog.Multiselect = true;
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
// 獲取選中的文件路徑數(shù)組
string[] selectedFiles = openFileDialog.FileNames;
foreach (var file in selectedFiles)
{
string fileExtension = Path.GetExtension(file);
if (fileExtension != requiredExtension)
{
// 構(gòu)造新的文件路徑,替換原來(lái)的后綴名
string newFilePath = Path.ChangeExtension(file, requiredExtension);
?
// 使用 File.Move 重命名文件
File.Move(file, newFilePath);
?
}
}
MessageBox.Show($"轉(zhuǎn)換文件格式成功,本次轉(zhuǎn)化文件數(shù)為:{selectedFiles.Length}");
}
else
{
MessageBox.Show("您本次沒有選中任何文件?。。?);
}
?
}
else
{
MessageBox.Show("請(qǐng)先設(shè)定需要的后綴名?。?!");
}
最大的區(qū)別就是選中的是一個(gè)文件夾還是多個(gè)文件。
本示例全部源代碼如下:
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($"已將需要的后綴名設(shè)定為:{requiredExtension}");
}
else
{
MessageBox.Show($"請(qǐng)?jiān)O(shè)置正常的后綴名,以.開頭");
}
}
?
private void button1_Click(object sender, EventArgs e)
{
if (requiredExtension != null)
{
// 創(chuàng)建一個(gè)FolderBrowserDialog對(duì)象
FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog();
?
// 設(shè)置對(duì)話框的標(biāo)題
folderBrowserDialog.Description = "選擇需要轉(zhuǎn)換格式的文件夾";
?
// 設(shè)置默認(rèn)的根文件夾,如果需要的話
// folderBrowserDialog.RootFolder = Environment.SpecialFolder.MyComputer;
?
// 顯示文件夾選擇對(duì)話框
DialogResult result = folderBrowserDialog.ShowDialog();
?
if (result == DialogResult.OK)
{
selectedFolderPath = folderBrowserDialog.SelectedPath;
MessageBox.Show($"您選中的文件夾路徑為:{selectedFolderPath}");
// 調(diào)用 GetFiles 方法獲取文件夾下的所有文件路徑
string[] files = Directory.GetFiles(selectedFolderPath);
foreach (var file in files)
{
string fileExtension = Path.GetExtension(file);
if (fileExtension != requiredExtension)
{
// 構(gòu)造新的文件路徑,替換原來(lái)的后綴名
string newFilePath = Path.ChangeExtension(file, requiredExtension);
?
// 使用 File.Move 重命名文件
File.Move(file, newFilePath);
?
}
}
MessageBox.Show($"轉(zhuǎn)換文件格式成功,本次轉(zhuǎn)化文件數(shù)為:{files.Length}");
}
else
{
MessageBox.Show("您本次沒有選中文件夾?。?!");
}
}
else
{
MessageBox.Show("請(qǐng)先設(shè)定需要的后綴名!??!");
}
}
?
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)
{
// 獲取選中的文件路徑數(shù)組
string[] selectedFiles = openFileDialog.FileNames;
foreach (var file in selectedFiles)
{
string fileExtension = Path.GetExtension(file);
if (fileExtension != requiredExtension)
{
// 構(gòu)造新的文件路徑,替換原來(lái)的后綴名
string newFilePath = Path.ChangeExtension(file, requiredExtension);
?
// 使用 File.Move 重命名文件
File.Move(file, newFilePath);
?
}
}
MessageBox.Show($"轉(zhuǎn)換文件格式成功,本次轉(zhuǎn)化文件數(shù)為:{selectedFiles.Length}");
}
else
{
MessageBox.Show("您本次沒有選中任何文件?。。?);
}
?
}
else
{
MessageBox.Show("請(qǐng)先設(shè)定需要的后綴名?。。?);
}
}
}
}
以上就是C# WinForm制作一個(gè)批量轉(zhuǎn)化文件格式的小工具的詳細(xì)內(nèi)容,更多關(guān)于C# WinForm文件格式工具的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
C# TextBox多行文本框的字?jǐn)?shù)限制問題
最近在使用C# TextBox多行文本框的時(shí)候,發(fā)現(xiàn)了其對(duì)字?jǐn)?shù)限制的一點(diǎn)問題,所以總結(jié)下在使用C# TextBox多行文本框要注意的的字?jǐn)?shù)限制問題,現(xiàn)在分享給大家,有需要的朋友們可以參考借鑒,下面來(lái)一起看看吧。2016-12-12
將ocx文件轉(zhuǎn)換成C#程序引用的DLL文件的辦法
將ocx文件轉(zhuǎn)換成C#程序引用的DLL文件的辦法,需要的朋友可以參考一下2013-03-03
C#關(guān)聯(lián)自定義文件類型到應(yīng)用程序并實(shí)現(xiàn)自動(dòng)導(dǎo)入功能
今天通過(guò)本文給大家分享C#關(guān)聯(lián)自定義文件類型到應(yīng)用程序并實(shí)現(xiàn)自動(dòng)導(dǎo)入功能,代碼中寫入了兩個(gè)注冊(cè)表,實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-09-09
C#中科學(xué)繪圖庫(kù)ScottPlot的使用詳解
ScottPlot是基于.Net的一款開源免費(fèi)的交互式可視化庫(kù),支持Winform和WPF等UI框架,本文給大家介紹了C#中科學(xué)繪圖庫(kù)ScottPlot的使用方法,文中示例在WPF環(huán)境中運(yùn)行,需要的朋友可以參考下2023-12-12
C#實(shí)現(xiàn)圖像選擇驗(yàn)證碼的示例代碼
為了防止網(wǎng)站被非法登陸,網(wǎng)站一般通過(guò)驗(yàn)證碼的方式,防止黑客用軟件非法登陸,本文主要介紹了C#實(shí)現(xiàn)圖像選擇驗(yàn)證碼的示例代碼,具有一定的參考價(jià)值,感興趣的可以了解一下2023-08-08
C#實(shí)現(xiàn)泛型動(dòng)態(tài)循環(huán)數(shù)組隊(duì)列的方法
隊(duì)列一種先進(jìn)先出的數(shù)據(jù)結(jié)構(gòu),本文通過(guò)實(shí)例代碼給大家介紹下C#實(shí)現(xiàn)泛型動(dòng)態(tài)循環(huán)數(shù)組隊(duì)列的方法,感興趣的朋友一起看看吧2022-01-01

