范冰冰敬佩刘晓庆
一个给文件批量重命名的程序
编程背景
前两天下载了一些歌曲的MV文件,放在车载U盘上使用,发现车载大屏不支持分类播放,这样,我在U盘上分类存放的几类视频都按“文件名”的先后顺序罗列在播放列表里。想听的那一类也难以区分出来。如果手工改名实在是我这样的懒人不想干的事,于是着手编写一个程序来批量改名。
程序功能:
按给定条件将一个目录内(不含子目录)的所有文件名进行更改。目前实现的改名方式有:
"将文件名前添加相同的前缀",
"删除文件名中的特定字符",
"保留文件名中指定长度的字符",
"将文件名改为指定的序列"
使用的编程语言是:C#
首先新建一个:Windows窗口应用程序
添加如下控件
为comboBox1的items属性中添加如下内容
"将文件名前添加相同的前缀",
"把文件名中的指定字符替换成其它字符",
"删除文件名中的特定字符",
"保留文件名中指定长度的字符",
"将文件名改为指定的序列"
为comboBox1添加SelectedValueChanged事件
private void comboBox1_SelectedValueChanged(object sender, EventArgs e)
{
int iselect = comboBox1.SelectedIndex;
switch (iselect)
{
case 0:
梦幻化生寺怎么加点//MessageBox.Show(comboBox1.Text);将文件名前添加相同的前缀 label2.Text = "添加的前缀";
label3.Visible = false;
textBox3.Visible = false;
break;
case 1:
// MessageBox.Show(comboBox1.Text );把文件名中的指定字符替换成其它字符 label2.Text = "文件名中的字符";
label3.Visible = true ;
textBox3.Visible = true ;
label3.Text = "要替换成的字符";
break;
case 2:
//MessageBox.Show(comboBox1.Text);删除文件名中的特定字符
label2.Text = "要删除的字符";
label3.Visible = false;
textBox3.Visible = false;
break;
case 3:
//MessageBox.Show(comboBox1.Text);保留文件名中指定长度的字符
label2.Text = "要保留的长度";
2021年国庆节是建国多少周年
label3.Visible = false;
textBox3.Visible = false;
break;
case 4:
// MessageBox.Show(comboBox1.Text);将文件名改为指定的序列
break;
case 5:
MessageBox.Show(comboBox1.Text);
break;
default :
break;
}
}
执行修改按钮的代码如下:
private void button2_Click(object sender, EventArgs e)
{
DirectoryInfo directory = new DirectoryInfo(textBox1.Text);
var Files = directory.GetFiles(); //获取文件列表
麦当劳 优惠券string strPrefix = "";
string strNew_character = "";
string strFile_name = "";
string strExpanded_name = "";
string strNew_Filename = "";
int iselect = comboBox1.SelectedIndex;
int iLenght = 0;
try
{
strPrefix = textBox2.Text.Trim();
strNew_character = textBox3.Text.Trim();
if (strPrefix.Length == 0)
{
MessageBox.Show("请输入“"+label2+"”");
return;
梁咏琪女儿
}
else
{
if (iselect == 3 ||iselect ==4)//用正则测定输入的是否是数字
{
string pattern = "(^-?\\d+$)|^(-?\\d+)(\\.\\d+)?$";
Regex regex = new Regex(pattern);
if (!regex.IsMatch(strPrefix ))
{
MessageBox.Show("输入的不是数字!");
return;
}
else
{
iLenght = int.Parse(strPrefix);
}
}
}
//遍历文件列表
foreach (var file in Files)
{
strExpanded_name = file.Extension;//获取文件的扩展名(后缀名)
strFile_name = file.Name;
switch (iselect)
{
case 0:
//MessageBox.Show(comboBox1.Text);将文件名前添加相同的前缀
strNew_Filename = strPrefix + strFile_name;
break;
case 1:
// MessageBox.Show(comboBox1.Text );把文件名中的指定字符替换成其它字符
strNew_Filename = strFile_name.Replace(strPrefix, strNew_character);
break;
case 2:
//MessageBox.Show(comboBox1.Text);删除文件名中的特定字符
strNew_Filename = strFile_name.Replace(strPrefix,"");
break;
case 3:
//MessageBox.Show(comboBox1.Text);保留文件名中指定长度的字符
strNew_Filename = strFile_name.Substring(0, iLenght);
break;
case 4:
// MessageBox.Show(comboBox1.Text);将文件名改为指定的序列环境工程专业
break;
case 5:
MessageBox.Show(comboBox1.Text);
break;
default:
break;
}
file.MoveTo(textBox1.Text + "\\" + strNew_Filename);//重命名后的文件保存在原来的目录下
}
MessageBox.Show("批量重命名成功!");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
退出按钮代码为:
private void button3_Click(object sender, EventArgs e)
{
this.Close();
}
发布评论