我是一名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; } } } }
注釋比較詳細,就不解釋啦。希望對你們的工作有幫助和啟發。
運行結果就不截圖啦~自己試一試就好。