用C# Winform做一個文件名批量修改器


我是一名QA,我提bug以后有個習慣,就是將bug的jira地址保存為一個鏈接存在本地,如下:

每天都要手動的把日期“【XX.XX】”添加在里面,這個反復修改文件名的過程是比較枯燥的,於是我決定寫一個窗體tool來實現,窗體如下:

點擊選擇后會跳出選擇的folder路徑的界面,這個地方用到了FolderBrowserDialog控件:

之后點擊修改就可以修改選擇的folder路徑下所有的文件名了。

整個窗體的代碼如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using System.Text.RegularExpressions;

namespace ModifyNamesByLastWriteTime
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
     //這里是“選擇”按鈕的代碼。 private void SelectPath_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog fbd = new FolderBrowserDialog();
            if (fbd.ShowDialog() == DialogResult.OK) 
            {
                pathText.Text = fbd.SelectedPath;
            }
        }
     //這里是“修改”按鈕的代碼。 private void modifyButton_Click(object sender, EventArgs e)
        {
            DirectoryInfo dir = new DirectoryInfo(pathText.Text);
            var fileInfos = dir.GetFiles();
            try
            {
                foreach (var fileInfo in fileInfos)
                {
            //如果文件名符合規范,返回值為真,就不更改。
if (CheckIfHasBeenModified(fileInfo)) { MessageBox.Show(fileInfo.Name + " is in the right format, no need to modify."); }
            //否則就改。
else {
              //轉換LastWriteTime的格式為“yyyy.mm.dd”。
string LastWriteTime = string.Format("{0:yyyy.MM.dd}", fileInfo.LastWriteTime);
              //在轉換格式后的LastWriteTime兩邊加上“【】”。
string fileNamePre = "" + LastWriteTime + "";
              //修改文件名的方法。 fileInfo.MoveTo(pathText.Text
+ "\\" + fileNamePre + fileInfo.Name.ToString()); } } MessageBox.Show("Names of the files have been modified succesfully."); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }      //這是檢查文件名是否符合規范的方法。 private static bool CheckIfHasBeenModified(FileInfo file) {
       //用正則表達式匹配規范字符串。
string pattern = @"^\【[0-9]+\.[0-9]+\.[0-9]+\】$"; Regex regex = new Regex(pattern, RegexOptions.IgnoreCase);
       
//這里如果文件名的長度不足12個字符會拋異常,所以只有在文件名長度大於等於12以后才做進一步校驗。 if (file.Name.Length >= 12) { if (regex.IsMatch(file.Name.Substring(0, 12))) {
            //匹配規范返回真。
return true; }
          //否則返回假。
else { return false; } }
       //否則返回假。
else { return false; } } } }

注釋比較詳細,就不解釋啦。希望對你們的工作有幫助和啟發。

運行結果就不截圖啦~自己試一試就好。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM