c# 通过解析mp3规范命名并上传服务器
引用
using Shell32;
private void Open_Click(object sender, RoutedEventArgs e) { OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = "MP3 Files(.mp3)|*.mp3|WMA Files(*.wma)|*.WMA"; //ofd.Multiselect = true; //允许多选 ofd.RestoreDirectory = true; //记住上一次的文件路径 ofd.ShowDialog(); FilePath = ofd.FileName; if (FilePath != "") { string OpenFileType = Path.GetExtension(FilePath); FileInfo FileLenght = new FileInfo(FilePath); if (FileLenght.Length > 10240000) { FuncClass.ShowError("Too Large!"); } else { ShellClass sh = new ShellClass(); Folder dir = sh.NameSpace(Path.GetDirectoryName(FilePath)); FolderItem item = dir.ParseName(Path.GetFileName(FilePath)); string NewPath = Path.GetDirectoryName(FilePath) + "\\" + dir.GetDetailsOf(item, 20) + " - " + dir.GetDetailsOf(item, 21) + OpenFileType; if (!File.Exists(NewPath)) { File.Move(FilePath, NewPath);//重命名其实就是move } dir = sh.NameSpace(Path.GetDirectoryName(NewPath)); item = dir.ParseName(Path.GetFileName(NewPath)); PathFile.Text = NewPath; FileName.Text = Path.GetFileNameWithoutExtension(NewPath) + OpenFileType; MusicName.Text = dir.GetDetailsOf(item, 21); WriteWords.Text = ""; WriteMusic.Text = ""; Singer.Text = dir.GetDetailsOf(item, 13); Album.Text = dir.GetDetailsOf(item, 14); Time.Text = dir.GetDetailsOf(item, 27); } } }
解析说明:例子周杰伦 - 青花瓷.mp3
-1 项目类型:MP3文件
大小:3.62
参与创作的艺术家:周杰伦
长度:00:03:57
0:青花瓷.mp3(文件名)
1: 3.62MB(大小)
2: MP3文件(项目类型)
3:xxxx-xx-xx xx:xx(修改时间)
9: 音频(文件类型)
10:Administrators(用户名)
11:音乐(所属)
13:周杰伦(演唱)
14:一人一首成名曲(专辑)
15: 2002(年份)
19:未分级
20:周杰伦(演唱)
21:青花瓷(歌名)
27: 00:03:57
28:128kbps
29:否
修改后周杰伦 - 青花瓷.mp3
图例:
打开后显示已修正得到歌曲信息:
private void UpLoad() { //wenserver需自己定义 WebClient webclient = new WebClient(); byte[] responseArray = webclient.UploadFile("http://192.168.1.11/WebForm1.aspx ", "POST", @"" + FilePath + "");//http路径 string getPath = Encoding.GetEncoding("UTF-8").GetString(responseArray); FuncClass.ShowInformation("歌曲已"+getPath + "上传到服务器");//返回信息 }