我与GitHub的第一次——自制音乐文件修改器
背景:
随机播放,所有的音乐播放器里面现在几乎都有这个功能吧。但是有没有发现,自己的播放器在选择随机播放的时候,经常会听到重复顺序的歌曲呢?反正我是有这样的感觉,无耐自己平时下的歌曲都是“歌手名—歌曲名”,所以在顺序播放的时候,还是会一连串的听到同一个人的歌曲。选择随机播放,又会遇到重复的顺序(这主要是跟算法有关)。最后自己想到的办法就是把自己硬盘上的所有音乐文件重命名成“歌曲名—歌手名”,但是打开查看自己硬盘上的音乐发现,竟然有六百首左右,自己手动改,岂不是要累死。
而且网上的一些批量该文件名的软件完成不了自己的需求。谁叫咱是程序员呢,自己写个程序完成不就行了。
这就是自己想写这个程序的背景,最后想着自己注册GitHub好长时间了你,也没有怎么用过,何不就用这次的代码做一次尝试呢?,接写来我会先写一下我的软件完成过程,然后写一下我初次在windows系统上搭建GitHub的过程。
------------------------------------------------分割线--------------------------------------------------
需求:
一,软件特点:
开发语言:C#
项目类型:WinForm
.NET FramWork版本:2.0
二,软件外观:
主要使用ListBox来显示自己的歌曲文件列表。
三,代码
这个小工具的主要代码有两部分,就是添加歌曲目录路径和开始改名。
1)添加歌曲目录并且把该目录下的所有音乐文件读取到ListBox中去的代码如下:
private void btnAddFile_Click(object sender, EventArgs e)
{ //使用FolderBrowserDialog类,它提示用户浏览、创建并最终选择一个文件夹
FolderBrowserDialog fole = new FolderBrowserDialog(); //设置是否显示“新建文件夹”按钮 (false为不显示 true为显示)
fole.ShowNewFolderButton = true;
//设置显示提示标题文字
fole.Description = "请选择媒体文件夹";
//判断是否点击了确定按钮
if (fole.ShowDialog() == DialogResult.OK)
{
//实例化目录信息的类 (文件夹的全路径)
DirectoryInfo dir = new DirectoryInfo(fole.SelectedPath); txtBoxFile.Text = fole.SelectedPath.ToString(); //获取总文件数目MP3和wma
int nFileCount = ;
FileInfo[] file = dir.GetFiles(); for (int i = ; i < file.Length ; i++)
{
if (file[i].Extension.ToLower().Equals(".mp3") || file[i].Extension.ToLower().Equals(".wma"))
{
nFileCount = nFileCount + ;
}
} lblFileCount.Text = "总歌曲数是:" + nFileCount.ToString() + "首"; //遍历文件夹中所有文件(除子文件夹)
foreach (FileInfo info in dir.GetFiles())
{
//判断文件的后缀名 进行筛选
if (info.Extension.ToLower().Equals(".mp3") || info.Extension.ToLower().Equals(".wma"))
{
//把筛选后的文件添加到ListBox控件的集合中
listFileName.Items.Add(info.FullName);
}
}
}
}
2)开始转换的代码如下:
DateTime strStartTime = DateTime.Now; for (int i = ; i < listFileName.Items.Count; i++)
{
string strOldName = listFileName.Items[i].ToString();
string strFileName = strOldName.Substring(strOldName.LastIndexOf('\\') + ); //获取歌手和歌曲名和文件格式
string strSinger = strFileName.Substring(,strFileName.IndexOf('-')).Trim();
string strMusicName = strFileName.Substring(strFileName.IndexOf('-') + , (strFileName.LastIndexOf('.') - strFileName.IndexOf('-'))-).Trim();
string strFormat = strFileName.Substring(strFileName.LastIndexOf('.'));
string strNewName=strOldName.Substring(,strOldName.LastIndexOf('\\')+)+strMusicName+'-'+strSinger+strFormat;
//更改歌曲名称
File.Move(strOldName, strNewName);
} DateTime strEndTime = DateTime.Now;
TimeSpan span = strEndTime - strStartTime;
this.labTime.Text = "花费时间为:" + (span.TotalMilliseconds).ToString();
其实这段代码主要就是拼接字符串来完成对文件名的修改,其实一点也不复杂。
由上面的代码可以发现,其实这个小工具的代码很简单,但是却解决了我的问题。而且很方便。如果手动修改的话,不仅无趣,而且也不会有什么收获。
下面就是自己的测试结果:
①开始转换前:
②转换过之后的文件名:
在转换的过程中,自动过滤了除歌曲之外的所有文件。
到这里文件名的修改就算是结束了。下面我们就开始在windows下面搭建GitHub,来Commit自己的源代码。
----------------------------------------------搭建GitHub--------------------------------------------------------------------
一,首先看你自己时候有账号,没有账号的话到https://github.com/注册Git账号。
二,如果已有Git账号,则需要下载windows安装文件包,地址:http://git-scm.com/download
三,有了安装包文件后直接双击安装即可(因为下载的是在线安装包,所以会花费一点时间)。
如下图:
四,安装完后,会在桌面出现 两个快捷方式,如下图:
第一个是Git的图形操作界面的快捷方式;第二个是Git的命令行操作快捷方式;
点击右上角创建自己的代码文件库:
如下图:
点击创建后就会出现下面的界面,我们根据说明填写自己的代码信息:
点击下面的大绿色的按钮“创建仓库”后,进入下一步,
我们一定要把这个https://github.com/Chineseqiangzi/RenameMusic.git地址记好,后面会多次用到。
下一步是点击Git Shell快捷方式,先把我们在Git上创建的仓库clone到本地来。
①使用ssh -T git@github.com命令来检查公约是否正确
说明成功连接了Git服务器。
②接下来就是对创建的库进行clone,这时候我们找到github文件夹发现文件夹下面是空的,如下图:
输入如下代码clone我们的github仓库:git clone https://github.com/Chineseqiangzi/RenameMusic.git
结果如下:
这时候我们再在gitHub的默认文件夹下面呢会发现一个文件夹。如下:
这时候说明我们已经成功的把github上的仓库clone了下来。
这时候的这个文件夹就相当于我们的工作台了。我把我写好的代码文件都拷贝到这个文件夹下面去,如下图:
③接下来我们要选择上传到github的仓库中的文件,
我们需要执行以下语句
git add . (上传该目录下的所有文件,注意add和‘.’之间有空格)
如果我们需要单独的上传某一个文件,只需要以该文件的名称替换‘.’
例如:git add program.cs (就是单独的上传program.cs文件)
④接下来提交代码使用如下命令:
git commit -m 'first_commit'
使用过SVN或者TFS的时候,我们在提交代码的时候是需要给版本控制工具一个说明,来说明我们对代码做了哪些修改。
使用命令git commit -m 'first_commit' 添加说明
注意:使用的时候可能会报错,如下图,解决方法也在图片中注释
⑤这时我们就会看到我们本地的源代码文件已经被创建到了github的仓库中,如下图:
⑥紧接着就是在我们的源代码地址创建远端仓库,我们源代码地址是:https://github.com/Chineseqiangzi/RenameMusic.git
命令如下:
git remote add origin https://github.com/Chineseqiangzi/RenameMusic.git (创建名字为origin的远端仓库)
但是在我的本地电脑上却报错了,结果如下:
解决办法如下:
找到如下地址的gitconfig文件
删除该文件你的remote节点:
然后执行创建远端仓库命令,并且提交本地的origin分支到master。结果如下图:
⑦这时我们就完成了整个的源代码提交到github的工作,这时我们就可以在github看到我们自己贡献的源代码了。
-------------------------------------------------分割线-------------------------------------------------------------------
其实在安装github 的时候,已经安装了图形的GUI界面,操作非常简单,就不做介绍了,大家有兴趣的可以自己探索。
在整个的使用gitHub 的过程中遇到了很多问题,自己主要是通过网络搜索得到了有用的答案,如果大家有兴趣,可以阅读以下博主的文章。希望对大家有所帮助。
Git 常用命令详解(二)
github常见操作和常见错误!错误提示:fatal: remote origin already exists.
Git常用命令
GitHub当道,菜鸟也为Git疯狂
我与GitHub的第一次——自制音乐文件修改器的更多相关文章
- HostsConfig文件修改器
Hosts文件修改器 HostsConfig v1.1 免费版 最近工作需要,经常需要更换各种域名的内外网配置,频繁的修改HOSTS文件,很多的时间都用在的修改HOSTS文件上,工作效率大大降低,课余 ...
- 经典游戏“大富翁4”存档文件修改器Rich4Editor下载
下载地址: http://files.cnblogs.com/files/xiandedanteng/Rich4Editor20170614.zip http://files.cnblogs.com/ ...
- WWW读取安卓外部音乐文件
需求分析 使用Everyplay(2121-1540版本)录屏,在升级SDK之后,遇到个问题,调用安卓原生的mediaplay进行播放音乐,在录屏时无法录制到声音,所以想到的解决办法是在Unity中播 ...
- 如何用Bat批处理自制自解压文件
转载▼http://blog.sina.com.cn/s/blog_48462a890102e0nu.html 1.在桌面上新建一个文本文档,如:“新建 文本文档.txt”,方法是:在桌面的空 ...
- android播放器如何获取音乐文件信息
转http://blog.csdn.net/hellofeiya/article/details/8464356, android自带的音乐播放器中,在获取音乐文件信息的时候是通过扫描得到相关信息的. ...
- HTML5 Audio时代的MIDI音乐文件播放
大家都知道,HTML5 Audio标签能够支持wav, webm, mp3, ogg, acc等格式,但是有个很重要的音乐文件格式midi(扩展名mid)却在各大浏览器中都没有内置的支持,因为mid文 ...
- ios获取本地音乐库音乐很详细 扫描IPHONE本地音乐文件,获得音乐名,歌手名代码示例
//扫描本地音乐文件,返回艺术家列表 需要库MediaPlayer.framework -(NSArray*) findArtistList { NSMutableArray *artistList ...
- ios学习:AVAudioPlayer播放音乐文件及读取ipod库中的音乐文件
首先要导入AVFoundation框架及 #import <AVFoundation/AVFoundation.h>头文件 注意:要在真机上调试 下面是ipad上的调试效果 下面是代码,代 ...
- 原来Github上的README.md文件这么有意思——Markdown语言详解
转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 之前一直在使用github,也在上面分享了不少的项目和Demo,每次创建新项目的时候,使用的都是默认的REA ...
随机推荐
- 【redis】linux上的安装与配置(详细图解)
转载自:https://blog.csdn.net/yjqyyjw/article/details/73293455:经过个人测试也适用于当前最新稳定的3.x的版本,顺便填了几个坑. 1.下载 htt ...
- PHP中的mb_convert_encoding与iconv函数介绍
php传输乱码 mb_convert_encoding这个函数是用来转换编码的.原来一直对程序编码这一概念不理解,不过现在好像有点开窍了. 不过英文一般不会存在编码问题,只有中文数据才会有这个问题.比 ...
- redis只加载AOF文件
如果同时配置写AOF和RDB两种文件,但在redis启动时,只会加载AOF,除非配置只写RDB,才会加载RDB文件,也因此AOF文件必须是全量数据,所以会越来越大,这缺点也将是redis优化的一个方向 ...
- C++中的浮点数运算的误差测试分析
C++中的浮点数运算的误差 项目中需要计算判定,采用的是float型,如: float a < yLing, 其中:a = 2.0, y则从1.0 + 0.2*n 当n = 4时,条件成立了? ...
- 二:nodejs+express+redis+bootstrap table+jquery UI
介绍:做一个量化投资的实时系统. 综合: 添加记录,顺序改变的话,refresh之后,能正常刷新吗?可以正常刷新,只是顺序又变回去. express中用fs readfile 时,需要用path.jo ...
- spring案列——xml配置
一.需要的jar包 spring.jar(官网下载) commons-logging.jar 二.项目结构 三.entity(实体类) package com.team.model; public c ...
- centos7 源码安装python3
1.非常重要!必须得先安装py3所依赖的软件包,否则可能会出现py3安装成功,却缺少相应的pip yum groupinstall "Development tools" yum ...
- C++ - explicit和volatile/const的内容
第一眼见到explicit和volatile可能会一愣一愣的觉得可能是c11或者c14新加的标识符. 其实不是这样,volatile和const两个关键字在C语言的第二个版本KR C的时候就被加入了C ...
- asp.net—工厂模式
一.什么是工厂模式 定义:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类. 二.怎么使用工厂模式 首先模拟一个场景:有一个汽车工厂, 可以日本车.美国车.中国车... 这个场景怎么用工厂 ...
- C#调用C++库知识点
DllImport方式: CharSet属性:Ansi短字节和Unicode长字节 CallingConvention属性:Cdecl清理和被调用方清理堆栈 EntryPoint属性:定位函数入口.如 ...