我与GitHub的第一次——自制音乐文件修改器

简介:

背景:

随机播放,所有的音乐播放器里面现在几乎都有这个功能吧。但是有没有发现,自己的播放器在选择随机播放的时候,经常会听到重复顺序的歌曲呢?反正我是有这样的感觉,无耐自己平时下的歌曲都是“歌手名—歌曲名”,所以在顺序播放的时候,还是会一连串的听到同一个人的歌曲。选择随机播放,又会遇到重复的顺序(这主要是跟算法有关)。最后自己想到的办法就是把自己硬盘上的所有音乐文件重命名成“歌曲名—歌手名”,但是打开查看自己硬盘上的音乐发现,竟然有六百首左右,自己手动改,岂不是要累死。

而且网上的一些批量该文件名的软件完成不了自己的需求。谁叫咱是程序员呢,自己写个程序完成不就行了。

这就是自己想写这个程序的背景,最后想着自己注册GitHub好长时间了你,也没有怎么用过,何不就用这次的代码做一次尝试呢?,接写来我会先写一下我的软件完成过程,然后写一下我初次在windows系统上搭建GitHub的过程。

------------------------------------------------分割线--------------------------------------------------

需求:

020000523288078.png

一,软件特点:

开发语言:C#

项目类型:WinForm

.NET FramWork版本:2.0

二,软件外观:

012322310622561.png

主要使用ListBox来显示自己的歌曲文件列表。

三,代码

这个小工具的主要代码有两部分,就是添加歌曲目录路径和开始改名。


1)添加歌曲目录并且把该目录下的所有音乐文件读取到ListBox中去的代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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 = 0;
                 FileInfo[] file = dir.GetFiles();
                 for  ( int  i = 0; i < file.Length ; i++)
                 {
                     if  (file[i].Extension.ToLower().Equals( ".mp3" ) || file[i].Extension.ToLower().Equals( ".wma" ))
                     {
                         nFileCount = nFileCount + 1;
                     }
                 }
                 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)开始转换的代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
DateTime strStartTime = DateTime.Now;
             for  ( int  i = 0; i < listFileName.Items.Count; i++)
             {
                 string  strOldName = listFileName.Items[i].ToString();
                 string  strFileName = strOldName.Substring(strOldName.LastIndexOf( '\\' ) + 1);
                 //获取歌手和歌曲名和文件格式
                 string  strSinger = strFileName.Substring(0,strFileName.IndexOf( '-' )).Trim();
                 string  strMusicName = strFileName.Substring(strFileName.IndexOf( '-' ) + 1, (strFileName.LastIndexOf( '.' ) - strFileName.IndexOf( '-' ))-1).Trim();
                 string  strFormat = strFileName.Substring(strFileName.LastIndexOf( '.' ));
                 string  strNewName=strOldName.Substring(0,strOldName.LastIndexOf( '\\' )+1)+strMusicName+ '-' +strSinger+strFormat;
                 //更改歌曲名称
                 File.Move(strOldName, strNewName);
             }
             DateTime strEndTime = DateTime.Now;
             TimeSpan span = strEndTime - strStartTime;
             this .labTime.Text =  "花费时间为:"  + (span.TotalMilliseconds).ToString();


其实这段代码主要就是拼接字符串来完成对文件名的修改,其实一点也不复杂。

由上面的代码可以发现,其实这个小工具的代码很简单,但是却解决了我的问题。而且很方便。如果手动修改的话,不仅无趣,而且也不会有什么收获。

下面就是自己的测试结果:

①开始转换前:

012331287193503.png

②转换过之后的文件名:

012332030625078.png

在转换的过程中,自动过滤了除歌曲之外的所有文件。

到这里文件名的修改就算是结束了。下面我们就开始在windows下面搭建GitHub,来Commit自己的源代码。

----------------------------------------------搭建GitHub--------------------------------------------------------------------

一,首先看你自己时候有账号,没有账号的话到https://github.com/注册Git账号。

二,如果已有Git账号,则需要下载windows安装文件包,地址:http://git-scm.com/download

三,有了安装包文件后直接双击安装即可(因为下载的是在线安装包,所以会花费一点时间)。

如下图:

012342246723274.png

四,安装完后,会在桌面出现 两个快捷方式,如下图:

012343039061787.png

第一个是Git的图形操作界面的快捷方式;第二个是Git的命令行操作快捷方式;

点击右上角创建自己的代码文件库:

如下图:

012356065946304.png

点击创建后就会出现下面的界面,我们根据说明填写自己的代码信息:

020002134694388.png

点击下面的大绿色的按钮“创建仓库”后,进入下一步,

020007272193869.png

我们一定要把这个https://github.com/Chineseqiangzi/RenameMusic.git地址记好,后面会多次用到。

下一步是点击Git Shell快捷方式,先把我们在Git上创建的仓库clone到本地来。

①使用ssh -T git@github.com命令来检查公约是否正确

020026058122267.png

说明成功连接了Git服务器。

②接下来就是对创建的库进行clone,这时候我们找到github文件夹发现文件夹下面是空的,如下图:

020105000313117.png


输入如下代码clone我们的github仓库:git clone https://github.com/Chineseqiangzi/RenameMusic.git

结果如下:

020108001873611.png

这时候我们再在gitHub的默认文件夹下面呢会发现一个文件夹。如下:

020108571727269.png


这时候说明我们已经成功的把github上的仓库clone了下来。


这时候的这个文件夹就相当于我们的工作台了。我把我写好的代码文件都拷贝到这个文件夹下面去,如下图:

020112480788525.png

③接下来我们要选择上传到github的仓库中的文件,

我们需要执行以下语句

git add .  (上传该目录下的所有文件,注意add和‘.’之间有空格)

如果我们需要单独的上传某一个文件,只需要以该文件的名称替换‘.’  

例如:git  add program.cs    (就是单独的上传program.cs文件)

④接下来提交代码使用如下命令:

git commit -m 'first_commit'

使用过SVN或者TFS的时候,我们在提交代码的时候是需要给版本控制工具一个说明,来说明我们对代码做了哪些修改。

使用命令git commit -m 'first_commit'  添加说明

注意:使用的时候可能会报错,如下图,解决方法也在图片中注释

020146098287380.png

⑤这时我们就会看到我们本地的源代码文件已经被创建到了github的仓库中,如下图:

020148264228850.png

⑥紧接着就是在我们的源代码地址创建远端仓库,我们源代码地址是:https://github.com/Chineseqiangzi/RenameMusic.git

命令如下:

git remote add origin https://github.com/Chineseqiangzi/RenameMusic.git   (创建名字为origin的远端仓库)

但是在我的本地电脑上却报错了,结果如下:

020159200317835.png

解决办法如下:

找到如下地址的gitconfig文件

020200459061300.png

删除该文件你的remote节点:

020201227978430.png


然后执行创建远端仓库命令,并且提交本地的origin分支到master。结果如下图:

020206210165121.png

⑦这时我们就完成了整个的源代码提交到github的工作,这时我们就可以在github看到我们自己贡献的源代码了。

020209377508218.png


-------------------------------------------------分割线-------------------------------------------------------------------

其实在安装github 的时候,已经安装了图形的GUI界面,操作非常简单,就不做介绍了,大家有兴趣的可以自己探索。

在整个的使用gitHub 的过程中遇到了很多问题,自己主要是通过网络搜索得到了有用的答案,如果大家有兴趣,可以阅读以下博主的文章。希望对大家有所帮助。


Git 常用命令详解(二)

github常见操作和常见错误!错误提示:fatal: remote origin already exists.

Git常用命令

GitHub当道,菜鸟也为Git疯狂







     本文转自yisuowushinian 51CTO博客,原文链接:http://blog.51cto.com/yisuowushinian/1355465,如需转载请自行联系原作者

相关文章
|
2月前
|
网络协议 Linux Android开发
解决GitHub无法访问的问题:手动修改hosts文件与使用SwitchHosts工具
解决GitHub无法访问的问题:手动修改hosts文件与使用SwitchHosts工具
239 1
|
2月前
|
弹性计算 Java API
阿里云OpenAPI的依赖文件通常在阿里云官方文档或者SDK的GitHub仓库中可以找到
【1月更文挑战第5天】【1月更文挑战第21篇】 阿里云OpenAPI的依赖文件通常在阿里云官方文档或者SDK的GitHub仓库中可以找到
158 1
|
2月前
|
开发工具 git
把文件移动到在github上新建的文件
把文件移动到在github上新建的文件
|
2月前
|
域名解析 网络协议 测试技术
[插件使用] SwitchHosts自动更新Github Hosts文件
[插件使用] SwitchHosts自动更新Github Hosts文件
638 0
|
1月前
|
开发工具 git
【看这一篇就够了】如何删除gitHub仓库中的文件
【看这一篇就够了】如何删除gitHub仓库中的文件
50 1
|
2月前
|
开发工具 git
【Github】sync fork后,意外关闭之前提交分支的pr申请 + 找回被关闭的pr请求分支中的文件
【Github】sync fork后,意外关闭之前提交分支的pr申请 + 找回被关闭的pr请求分支中的文件
45 5
|
2月前
|
缓存 网络安全 开发工具
【尝试】域名验证:配置github二级目录下的txt文件
【尝试】域名验证:配置github二级目录下的txt文件
59 2
|
2月前
|
安全 网络安全 开发工具
【GitHub】清空 GitHub 仓库中的所有内容,只保留 `README.md` 文件
【GitHub】清空 GitHub 仓库中的所有内容,只保留 `README.md` 文件
33 2
|
2月前
|
Linux API 开发者
【专栏】掌握`curl`能提升开发效率和解决问题的能力
【4月更文挑战第28天】本文介绍了如何使用`curl`命令从GitHub下载文件。基础操作包括获取文件的克隆URL,打开终端输入`curl -O <file_clone_url>`,执行命令以下载文件。文章还提及了代理设置、认证和错误处理等高级应用,帮助开发者更高效地管理代码和资源。掌握`curl`能提升开发效率和解决问题的能力。
|
2月前
|
程序员
借用GitHub将typora图片文件快速上传CSDN
借用GitHub将typora图片文件快速上传CSDN