其實很簡單了,不過這裡還是說一下,希望能給和我一樣的C#新手帶來幫助
背景:本人很愛看動畫片和漫畫,近日下載了火影忍者的漫畫,結果目錄中的圖片文件命名方式是1,2,.....,10,....99,100,這樣在acdsee中觀看的順序就是1,10,100....不是按照數字的順序,看起來比較郁悶。故此就動手寫一個批量文件改名的小程序,把文件名補齊為3位,按照001,002,...,009,010,...這樣的順序。
涉及到的知識:string的函數;File和Directory函數;Environment和一些界面類
核心代碼如下:十分簡單
// 清空log
this.listBoxLog.Items.Clear();
// 獲取當前路徑下全部文件名
String[] files = Directory.GetFiles(Environment.CurrentDirectory);
foreach(String filename in files)
{
// 最後一個"\"
int lastpath = filename.LastIndexOf("\\");
// 最後一個"."
int lastdot = filename.LastIndexOf(".");
// 純文件名字長度
int length = lastdot-lastpath-1;
// 文件目錄字符串 xx\xx\xx\
String beginpart = filename.Substring(0, lastpath+1);
// 純文件名字
String namenoext = filename.Substring(lastpath+1, length);
// 擴展名
String ext = filename.Substring(lastdot);
if(length < 3)
{
// 補齊為3位,組成新的文件名
String namenew;
if(length == 1)
namenew = "00" + namenoext;
else
namenew = "0" + namenoext;
String fullnewname = beginpart + namenew + ext;
// 改名
File.Move(filename, fullnewname);
// log
this.listBoxLog.Items.Add(namenoext + "--->" + namenew);
this.listBoxLog.SelectedIndex = this.listBoxLog.Items.Count - 1;
}