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 > )
{
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, ) + " - " +
dir.GetDetailsOf(item, ) + 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, );
WriteWords.Text = "";
WriteMusic.Text = "";
Singer.Text = dir.GetDetailsOf(item, );
Album.Text = dir.GetDetailsOf(item, );
Time.Text = dir.GetDetailsOf(item, );
}
}
}
解析说明:例子周杰伦 - 青花瓷.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 + "上传到服务器");//返回信息
}
c# 通过解析mp3规范命名并上传服务器的更多相关文章
- 优化Recorder H5录音:可边录边转码上传服务器,支持微信提供Android IOS Hybrid App源码
Recorder H5 GitHub开源库随着支持功能的增多,音频转码处理效率渐渐的跟不上需求了,近期抽时间对音频转码部分进行了升级优化,以支持更多实用的功能. 另外IOS的Hybrid App也完成 ...
- ios-高德、百度后台定位并上传服务器
一.配置高德或百度的后台定位框架和代码(略). 二.配置app不被系统kill,定时获取地理位置信息,并上传服务器(AppDelegate里面). 具体代码: 1. - (void)applicati ...
- Linux 本地文件或文件夹上传服务器
Linux 本地文件或文件夹上传服务器 一.权限设置 本地文件或文件夹上传服务器,你首先需要获取到root权限: 二.上传方式 上传方式有两种 : 1.通过 FTP 客户端上传文件或文件夹: 2.通过 ...
- IOS 视频.图片上传服务器
//上传视频 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; manager.requestSerializer. ...
- HTTP文件上传服务器-支持超大文件HTTP断点续传的实现办法
最近由于笔者所在的研发集团产品需要,需要支持高性能的大文件http上传,并且要求支持http断点续传.笔者在以前的博客如何实现支持大文件的高性能HTTP文件上传服务器已经介绍了实现大文件上传的一些基本 ...
- vue代码上传服务器后背景图片404解决方法
问题:代码上传服务器后,图片404,使用的font-awesome图标也是404 解决办法: 如果你用了vue-cil,那么在build目录下找到utils.js中的ExtractTextPlugin ...
- eclipse导出文件上传服务器
[1]导出 选择项目 文件导出 输入导出路径如f盘ftp文件夹下 [2]利用scr上传服务器工具 上传到 home/tomcat/app/项目名称/ 不导入upload文件 [待完善]
- $.ajax json 在本地正常 上传服务器不正常
$.ajax( { url:"url",// 跳转到 action data:{name ...
- ios中摄像头/相册获取图片压缩图片上传服务器方法总结
本文章介绍了关于ios中摄像头/相册获取图片,压缩图片,上传服务器方法总结,有需要了解的同学可以参考一下下. 这几天在搞iphone上面一个应用的开发,里面有需要摄像头/相册编程和图片上传的问 ...
随机推荐
- Delphi的字符(Char),字符串(String),字符串指针(PChar),字符数组arrayofchar(来自http://delphi.cjcsoft.net/论坛)
Delphi有三种类型的字符: AnsiChar这是标准的1字节的ANSI字符,程序员都对它比较熟悉. WideChar这是2字节的Unicode字符. Char在目前相当于AnsiChar,但在De ...
- 与众不同 windows phone (17) - Graphic and Animation(画图和动画)
原文:与众不同 windows phone (17) - Graphic and Animation(画图和动画) [索引页][源码下载] 与众不同 windows phone (17) - Grap ...
- 用Ajax删除的做法
一般程序文件代码 using System;using System.Web;using System.Linq;using System.Data.Linq; public class Shanch ...
- Delphi自写组件:可设置颜色的按钮(改成BS_OWNERDRAW风格,然后CN_DRAWITEM)
unit ColorButton; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, StdCtrls; ...
- D2010 RTTI + Attribute 简单实现ORM
还记得David I 今年四月来盛大时,被问及“反射机制能再做得好一点吗?我们想放弃RTTI”,David I 回答“这的确是需要考虑的地方,当然RTTI我们不会放弃的”.(这个白胡子的老哥哥还真很可 ...
- ThinkPhp学习08
原文:ThinkPhp学习08 一.普通查询方式 a.字符串 $arr=$m->where("sex=0 and username='gege'")->find(); ...
- js 常用正则表达式分析详解
1.整数或者小数:/^((0{1}|[1-9]{1}[0-9]+)\.{1}[0-9]+|[1-9]{1}[0-9]*|0)$/ 分析:分类讨论,如果是小数,则有两种形式 0.111对应的是 0{ ...
- InputStream中read()与read(byte[] b)(转)
read()与read(byte[] b)这两个方法在抽象类InputStream中前者是作为抽象方法存在的,后者不是,JDK API中是这样描述两者的: 1:read() : 从输入流中读取数据的下 ...
- HDU 4704 Sum (费马定理+快速幂)
Sum Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) Total Subm ...
- c++里的类型转化
c++里的类型转换种类 在c++里包含4种,static_cast,dynamic_cast,const_cast,reinterpret_cast. 4种类型 reinterpret_cast: 强 ...