iT邦幫忙

0

C# rename多個檔案名稱(再見小叮噹)

很呆的小練習,但就練習嚕,多練習多熟悉.
有一個需求,想把檔案字眼換掉,但檔案很多,懶得一個一個手動改.
而且學程式的,知道可以寫程式批次改,如果手動改,好像也很呆.

先拆解功能
1.檔名rename
2.讀取資料夾中的檔案名稱

rename

1.rename怎麼做,網路上找到這個方法,居然是Move,跟我們的rename概念不太一樣.XDDD
System.IO.File.Move(@"d:\test.docx", @"d:\test_rename.docx");

看一下d:\test.docx有沒有變成test_rename
有啊!!成功了!!!!

找檔案

2.找檔案怎麼做?網路上找到這個方法,先做一個資料夾(A),裡面有一個子資料夾和2個檔案,子資料夾裡有3個檔案.
然後把這個A放進去找找看,是否所有檔案都有找出來

 public void DirSearch(string sDir)
        {
             try
            {
                foreach (string d in System.IO.Directory.GetDirectories(sDir))
                {
                    foreach (string f in System.IO.Directory.GetFiles(d))
                    {
                        txMSG.Text += f + Environment.NewLine;
                    }
                    DirSearch(d);
                }
                
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

組合

拉一個txPath ,方便輸入路徑
拉一個BtnExec
拉一個txMsg ,方便顯示log
輸入路徑,按下BtxExec,everything all done.


     private void BtnExec_Click(object sender, EventArgs e)
    {
        DirSearch(txPathText.Text);
        MessageBox.Show("OK");
    }
 
public void DirSearch(string sDir)
    {
        try
        {
            foreach (string d in System.IO.Directory.GetDirectories(sDir))
            {
                foreach (string f in System.IO.Directory.GetFiles(d))
                {
                    if (f.Contains("小叮噹"))
                    {
                        string n = f.Replace("小叮噹", "多拉A夢");
                        rename(f, n);
                        txMSG.Text += f + Environment.NewLine;
                    }
                }
                DirSearch(d);
            }

        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
    }
    private void rename(string src, string dest)
    {
        System.IO.File.Move(src,dest );
    }
    ```

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言