雖然光寫程式的時間就足以完成手動更改的工作,不過就像某些演算法的概念,第一次辛苦一點花多一點時間做一件事,接下來後面的類似工作就可以省去這件事情而且可以很快速的透過這個流程來完成。
Rename_Batch (x86)
使用方法:
(1)將這個程式放到你將要批次修改的目錄中,並點擊執行
(2)上方輸入框 - 輸入在目前的目錄中,你想要修改的檔案的副檔名,例如你想修改所有副檔名是 .txt 的檔案,則輸入 .txt,當然你可以都不要輸入,這樣子就會修改像上面那些沒有副檔名的檔案了
(3)下方輸入框 - 輸入要修改成的副檔名,例如你想將某個檔案修改成 .jpg 的檔案,則輸入 .jpg
(4)按下按鈕,若跳出 "修改完成!" 的訊息,即完成修改
/* * Program: Batch Of Renaming File Extension * Language: C# .NET Framework 3.5 * Author: Veck Hsiao @ Taiwan, National Chung Cheng University * Time: June/29/2012 * Usage: Change all assigned file extensions in current directory in batch */
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; namespace Rename_Batch { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { DirectoryInfo di = new DirectoryInfo("."); string NewExt = textBox1.Text.Trim(); string SourceExt = textBox2.Text.Trim(); /*檢查要修改的副檔名*/ try { if (SourceExt[0] != '.') { MessageBox.Show("請輸入含 '.' 的完整附檔名"); textBox1.Text = ""; return; } } catch (Exception ex) { /*沒有輸入副檔名,表示要修改沒有副檔名的"檔案"*/ } /*檢查要修改成的副檔名*/ try { if (NewExt[0] != '.') { MessageBox.Show("請輸入含 '.' 的完整附檔名"); textBox1.Text = ""; return; } } catch(Exception ex) //沒有輸入要修改成的副檔名沒有意義 { MessageBox.Show("請輸入副檔名"); return; } /*執行批次作業*/ foreach (FileInfo fi in di.GetFiles()) { string name = fi.Name; //取的檔案的全名 string ext = fi.Extension; //取得檔案的附檔名
string main = Path.GetFileNameWithoutExtension(fi.DirectoryName+"\\"+fi.Name) ; //取得檔案的主要名 if (ext != ".exe" && ext !=".pdb" && ext!=NewExt && ext ==SourceExt) { /*更改副檔名*/ String NewName = main + NewExt; fi.MoveTo(Path.Combine(fi.DirectoryName, NewName)); } else { } }//end_of_foreach MessageBox.Show("修改完成!"); }//end_of_button_click } }
Nice, 下次用regx寫一個完整的檔名更改一定很ok的
回覆刪除然後剛剛看了一下這篇文章
http://www.dotblogs.com.tw/dc690216/archive/2009/09/17/10684.aspx
這樣似乎可以簡化foreach裡面的判斷
哈哈, 謝謝啦!
刪除這真的是比較 smart 的寫法
之後會來試試看這個方法
謝謝你的軟體!
回覆刪除