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); } } } }

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 熊仔 的頭像
    熊仔

    熊仔的部落格

    熊仔 發表在 痞客邦 留言(0) 人氣()