一:批量重命名的前置知识
a,DirectoryInfo 类
公开用于创建、移动和枚举目录和子目录的实例方法。无法继承此类。
将 DirectoryInfo 类用于典型操作,如复制、移动、重命名、创建和删除目录。
如果打算多次重用某个对象,可考虑使用
DirectoryInfo 的实例方法,而不是 Directory 类的相应静态方法,因为并不总是
需要安全检查。
b,FileInfo
FileInfo.MoveTo将指定文件移到新位置,并提供指定新文件名的选项。
C#里面,重命名文件时,没有 rename 这个功能,使用的是FileInfo.MoveTo的方式,MoveTo 到原目录里一个新的名字,即实现了重命名
FileInfo.MoveTo:将指定文件移到新位置,并提供指定新文件名的选项,所以可以用来重命名文件(而不改变位
置);
DirectoryInfo.GetFiles():获取目录中(不包含子目录)的文件,返回类型为FileInfo[],支持通配符查找;
c,Conbobox.Selectedxxxx
d,Path.Combine
方法 —— 将2-4个字符串组合成一个路径
e,LastIndexOf
int g = tests.LastIndexOf("//", 5, tests.Length - 5);
表示从tests字符串的从左到右搜索"//",返回最后一
个"//"在字符串中的位置
二:相关截图
ReNameFile0.0.6.zip,增加包含原有命名,去掉原有命名的前10位(如图的两次命名)和服务网站,修复因为第二次排序按照字符来命名的顺序错误,增加序号起始范围到20
三:相关代码
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; namespace ReNameFile { public partial class Rename : Form { public Rename() { InitializeComponent(); } string path; int Autofix; /// <summary> /// 重命名事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_rename_Click(object sender, EventArgs e) { this.btn_rename.Visible = false; DirectoryInfo di = new DirectoryInfo(path); int idx = Convert.ToInt32(cb_moved.SelectedItem); string fix = tb_fixed.Text; foreach (FileInfo fi in di.GetFiles())//可以用 di.GetFiles("*.jpg") 只重名jpg文件 { //在文件名后面加0 string toFileName = this.tb_fixed.Text + idx.ToString(); //执行重命名,真正的文件名由三部分组成,路径+文件名+文件类型(C:UsershmjDesktop批量重命名+1+.txt) fi.MoveTo(Path.Combine(fi.DirectoryName, toFileName + fi.Extension)); idx++; } MessageBox.Show("已经全部重命名了"); } /// <summary> /// 选择路径 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_path_Click(object sender, EventArgs e) { //打开文件,得到文件夹的路径 if (openFileDialogSearch.ShowDialog() == DialogResult.OK) { path = openFileDialogSearch.FileName; //记录打开的文件名 //得到最后那个"\"的为主 int i = path.LastIndexOf("\"); //得到文件夹的路径 path = path.Substring(0, i); } this.btn_rename.Visible = true; } /// <summary> /// 自动加载可变的开始数字 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Rename_Load(object sender, EventArgs e) { //加载可变的开始数字 List<int> moved = new List<int>(); for (int i = 0; i <= 9; i++) { moved.Add(i); } cb_moved.DataSource = moved; this.btn_rename.Visible = false; this.Text = "红马車专用批量命名"; } } }
四:程序功能介绍
实现功能:将文件夹内的所有文件以固定格式+数字进行命名,更新功能:将文件夹内的所有文件以固定格式+原有名来命名(用于原有名前有序号的情况)
1,直接打开ReNameFile.exe程序,运行即可
2,注意事项:
a,先要选择你要执行的文件夹下第一个文件,作为命名是的第一个文件,如:XXX0.txt
b,如果文件下存在和你命名的文件名相同,则不可以
五:程序下载
复制粘贴如下地址到浏览器的URL即可下载:(第一版)http://files.cnblogs.com/hongmaju/ReName.zip(已失效)
(第二版)http://files.cnblogs.com/hongmaju/Rename0.0.2.zip(已失效)
(第三版)http://files.cnblogs.com/hongmaju/Rename0.0.3.zip(已失效)
(第四版)http://files.cnblogs.com/hongmaju/ReNameFile0.0.4.zip(已失效)
(第五版)http://files.cnblogs.com/hongmaju/ReNameFile0.0.5.zip(已失效)
(第六版)http://files.cnblogs.com/hongmaju/ReNameFile0.0.6.zip(已失效)
(第七版)http://files.cnblogs.com/hongmaju/ReNameFile0.0.7.zip(已失效)
(第八版)http://files.cnblogs.com/hongmaju/ReNameFile0.0.8.zip(已失效)
(第九版)http://files.cnblogs.com/hongmaju/ReNameFile0.0.9.zip(已失效)
(第十版)http://files.cnblogs.com/hongmaju/ReNameFile0.1.0.zip(已失效)
(第十一版)http://files.cnblogs.com/hongmaju/ReNameFile0.1.1.zip
(正式版:正常下载)http://files.cnblogs.com/hongmaju/ReNameFilev1.0.zip