用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 >= )
{
if (regex.IsMatch(file.Name.Substring(, )))
{
//匹配规范返回真。
return true;
}
//否则返回假。
else
{
return false;
}
}
//否则返回假。
else
{
return false;
}
}
}
}
注释比较详细,就不解释啦。希望对你们的工作有帮助和启发。
运行结果就不截图啦~自己试一试就好。
用C# Winform做一个文件名批量修改器的更多相关文章
- 使用python做一个IRC在线下载器
使用python做一个IRC在线下载器 1.开发流程 2.软件流程 3.开始 3.0 准备工作 3.1寻找API接口 3.2 文件模块 3.2.1 选择文件弹窗 3.2.2 提取文件名 3.2.2.1 ...
- python:批量修改文件名批量修改图片尺寸
批量修改文件名 参考博客:https://www.cnblogs.com/zf-blog/p/7880126.html 功能:批量修改文件名 1 2 3 4 5 6 7 8 9 10 11 12 1 ...
- iOS --- DIY文件名批量修改
批量修改文件名: // 1.创建文件管理 NSFileManager *filemanager =[NSFileManager defaultManager]; // 2. 获得所有文件夹路径 NSS ...
- 用区块链技术做一个 不可被修改的 恋爱记录 app 我叫<<誓言>>
区块链技术 具有不可篡改,去中心化,共识机制等优秀的特性, 都用来做 代币钱包什么的.我觉得完全是浪费. 我的想法是用哪个区块做一个dapp 1 里面写着每个人的恋爱记录,爱情宣言. 2 一个人一生 ...
- [ 原创 ]学习笔记-做一个Android音乐播放器是遇到的一些困难
最近再做一个安卓的音乐播放器,是实验室里学长派的任务,我是在eclipse上进行开发的,由于没有android的基础,所以做起来困难重重. 首先是布局上的困难 1.layout里的控件属性不熟悉 2. ...
- 用nodejs做一个svn密码修改页面
linux上配置好svn服务后,管理修改密码还得去手工修改passwd这个文件,略麻烦,其实网上应该有配套的web管理修改界面程序.但我想自己用nodejs写一个,因为用node不用配置复杂的服务器. ...
- 利用Django和装饰器做一个简单的修改密码页面
view视图代码: from django.shortcuts import render,redirect from django.http import HttpResponse from PIL ...
- 用C#做一个 拉流播放器
做拉流播放器第一个想到就是,.,..FFmpeg没错 我也是用强大的他它来做的.但是我用的不是 cmd 调用 而是用的强大的FFmpeg.AutoGen FFmpeg.AutoGen 这个是C# 一 ...
- rename 批量修改文件名
1.rename的用法 rename与mv的区别就是mv只能对单个文件重命名,而rename可以批量修改文件名 linux中的rename有两种版本,一种是C语言版的,一种是Perl版的.早期的Lin ...
随机推荐
- Unable to read TLD "META-INF/c.tld" from JAR file
Unable to read TLD "META-INF/c.tld" from JAR file CreationTime--2018年7月18日17点46分 Author: ...
- 警察与小偷的实现之中的一个client与服务端通信
来源于ISCC 2012 破解关第四题 目的是通过逆向police.实现一个thief,可以与police进行通信 实际上就是一个RSA加密通信的样例,我们通过自己编写client和服务端来实现上面的 ...
- java手动加载jar
@RequestMapping("/testJar") public @ResponseBody String exteriorJar(int ys, int csd,int jg ...
- oracle默认连接数150
当oracle连接数超过最大的150登录不上 sqlplus / as sysdba ###报错,提示连接数未释放! ---释放网络连接数 ps -ef |grep ora |grep " ...
- SlackWare安装
Keep It Simple Stupid 01.下载 slackware: http://www.slackware.com/ 中科大: http://mirrors.ustc.edu.cn ...
- Centos定时执行python脚本
其实就是linux的定时任务.老记不住参数,这次写下来,省着老百度.本文没有技术含量,请大家不要吐槽. ================================================ ...
- HDUOJ----2647Reward
Reward Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Subm ...
- 关于域名如何指向WordPress homepage问题的解决
http://genuinelx.org/oldversion.php/archives/19为解决这个问题真的费了我半天的时间= = ,不写出来真的难以抒发苦闷. 下午VPS开通了,虽然有个ip被墙 ...
- Asp.Net Core 轻松学-一行代码搞定文件上传 JSONHelper
Asp.Net Core 轻松学-一行代码搞定文件上传 前言 在 Web 应用程序开发过程中,总是无法避免涉及到文件上传,这次我们来聊一聊怎么去实现一个简单方便可复用文件上传功能:通过创建 ...
- linux ---性能监控(工具)
linux服务器性能监控-nmon Nmon 是一个分析aix和linux性能的免费工具,出自IBM,其采集的数据通过nmon_analyser生成报表 一.下载 官网下载地址 百度网盘 二.运行和使 ...