zoukankan      html  css  js  c++  java
  • 我与GitHub的第一次——自制音乐文件修改器 分类: ASP.NET 2014-02-02 02:19 15092人阅读 评论(24) 收藏

    背景:

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

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

    这就是自己想写这个程序的背景,最后想着自己注册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 = 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)开始转换的代码如下:

    复制代码
           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();
    复制代码

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

     

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

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

    ①开始转换前:

     

    ②转换过之后的文件名:

     

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

     

    到这里文件名的修改就算是结束了。下面我们就开始在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疯狂



    毕业实习交流群:221376964。你也可以关注我的新浪微博进行交流。

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    OpenCascade Ray Tracing Rendering
    Create New Commands in Tcl
    OpenCascade Modeling Algorithms Fillets and Chamfers
    OpenCascade Modeling Algorithms Boolean Operations
    Construction of Primitives in Open Cascade
    Open Cascade Data Exchange STL
    Tcl Tk Introduction
    Open Cascade DataExchange IGES
    Netgen mesh library : nglib
    Hello Netgen
  • 原文地址:https://www.cnblogs.com/yisuowushinian/p/4715621.html
Copyright © 2011-2022 走看看