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; using System.Threading; //自行宣告 namespace WindowsFormsApplication4 { public partial class Form1 : Form { //宣告資料夾對話方塊類別 FolderBrowserDialog Fbd = new FolderBrowserDialog(); public Form1() { InitializeComponent(); textPath.Text = @"C:\Users\jwwu\Desktop\委任狀\"; this.btnS.Click += new EventHandler(Btn_Click); this.btnBr.Click += new EventHandler(Btn_Click); this.btnE.Click += new EventHandler(Btn_Click); this.label4.Text = ""; } public void Btn_Click(object sender, EventArgs e) { if (sender.Equals(btnE)) { this.Close(); } else if (sender.Equals(btnBr)) { //初始位置設定 Fbd.RootFolder = Environment.SpecialFolder.Desktop; //開啟方塊 Fbd.ShowDialog(); //取得選取資料夾路徑 textPath.Text = Fbd.SelectedPath; } else if (sender.Equals(btnS)) { if (!Directory.Exists(textPath.Text)) { MessageBox.Show("請輸入正確路徑", "瀏覽路徑"); return; } //找出目錄底下所有檔案,以及子目錄底下所有檔案 string[] filepath = System.IO.Directory.GetFiles(textPath.Text, "*", System.IO.SearchOption.AllDirectories); //設定初始值 this.label4.Text = ""; //設定初始值=0 this.progressBar1.Value = 0; //數值最小=0 this.progressBar1.Minimum = 0; //數值最大=總共檔案數目 this.progressBar1.Maximum = filepath.Length; this.progressBar1.Step = 1; foreach (var filename in filepath) { //從路徑抓出檔案名稱 string strname = filename.Substring(filename.LastIndexOf("\\") + 1); //從路徑抓出目錄路徑 string strname1 = filename.Substring(0, filename.LastIndexOf("\\")); string strSpace = ""; //判斷字串中是否有空白部分 if (strname.Contains(" ")) { //使用Replace轉換字串 strSpace = strname.Replace(" ", "_"); } else { //沒有空白則為原來檔案名稱 strSpace = strname; } //拆解檔案名稱,分出 檔名 及 副檔名 string strMa = ""; string strSe = ""; //檔名在副檔名"."之前 strMa = strSpace.Substring(0, strSpace.LastIndexOf(".")).ToString(); //副檔名在"."之後包括"."
strSe = strSpace.Substring(strSpace.LastIndexOf(".")).ToString(); string strDel = ""; //當檔案名稱裡面有"."的時候 while (strMa.Contains(".")) { //index從零開始,總長度-1= index if ((strMa.LastIndexOf(".")) == (strMa.Length - 1)) { //檔案索引與"."相同,減去一個字串 strDel = strMa.Substring(0, strMa.Length - 1).ToString(); strMa = strDel; } else { break; } } //foreach一個檔案就+1 progressBar1.Value += 1; //使用File.Move移動檔案,也可以更新檔案名稱 File.Move(filename, strname1 + "\\" + strMa + strSe);
//計算百分比 int intValue = progressBar1.Value; label4.Text = "Records Read = " + progressBar1.Value.ToString() +"個 " + ((intValue / progressBar1.Maximum) * 100 + "%").ToString(); } //MessageBox.Show("檔案名稱修改完成", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information); } } } }
全站熱搜