1、一次性下载了很多歌曲,于是写了个小程序批量修改歌曲名。
2、原来的歌曲名是这样的:
3、原理也很简单,提取标题中的中文,再修改原文件名,再把改好的文件放到指定文件夹中。
using System;
using System.IO;
using System.Text.RegularExpressions;
using System.Windows.Forms;
namespace 批量修改文件名
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
int i, start = 0,flag = 0;
bool bl;
Regex reg = new Regex("^[\u4e00-\u9fa5]$");
String path = @"C:\Users\Xyan1\Desktop\music";
var files = Directory.GetFiles(path, "*.MP3");
foreach (var file in files)
{
start = 0;
flag = 0;
StreamWriter sw = File.AppendText(path + "\\歌曲列表.txt");
string Nowname = file;
int length = Nowname.Length;
for (i = 0; i < length; i++)
{
if ((Nowname.Substring(i, 1) == ".") && (Nowname.Substring(i + 1, 1) == " "))
{
start = i;
break;
}
}
start = start + 2;
for (i = start; i < length; i++)
{
bl = (reg.IsMatch(Nowname.Substring(i, 1))) && (reg.IsMatch(Nowname.Substring(i + 1, 1)));
//判断是否连续两个字符都是汉字,很少有一个字的歌,大部分至少歌名有2个字
if (bl)
{
flag++;
}
else
//否则的话就退出循环,汉字部分结束
{
if (flag != 0)
{
break;
}
}
}
flag++;
string Name = Nowname.Substring(start, flag);
sw.WriteLine(Name);//把新的歌名写到txt中生成歌单。
File.Move(file, "C:\\Users\\Xyan1\\Desktop\\music1" + "\\"+ Name + ".mp3");
//修改文件名,并把新文件复制到制定文件夹。
sw.Flush();
sw.Close();
// MessageBox.Show("已修改文件"+Name+".mp3");
}
}
}
}
4.界面:就一个按钮,点击就运行。
5、效果:
修改前:
修改后:
6、局限性:只能修改中文歌名,只能正确修改至少2个字的歌名。
7、有其他需要的朋友自己修改代码。