背景:
随機播放,所有的音樂播放器裡面現在幾乎都有這個功能吧。但是有沒有發現,自己的播放器在選擇随機播放的時候,經常會聽到重複順序的歌曲呢?反正我是有這樣的感覺,無耐自己平時下的歌曲都是“歌手名—歌曲名”,是以在順序播放的時候,還是會一連串的聽到同一個人的歌曲。選擇随機播放,又會遇到重複的順序(這主要是跟算法有關)。最後自己想到的辦法就是把自己硬碟上的所有音樂檔案重命名成“歌曲名—歌手名”,但是打開檢視自己硬碟上的音樂發現,竟然有六百首左右,自己手動改,豈不是要累死。
而且網上的一些批量該檔案名的軟體完成不了自己的需求。誰叫咱是程式員呢,自己寫個程式完成不就行了。
這就是自己想寫這個程式的背景,最後想着自己注冊GitHub好長時間了你,也沒有怎麼用過,何不就用這次的代碼做一次嘗試呢?,接寫來我會先寫一下我的軟體完成過程,然後寫一下我初次在windows系統上搭建GitHub的過程。
------------------------------------------------分割線--------------------------------------------------
需求:

一,軟體特點:
開發語言:C#
項目類型:WinForm
.NET FramWork版本:2.0
二,軟體外觀:
主要使用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
<code>private</code> <code>void</code> <code>btnAddFile_Click(</code><code>object</code> <code>sender, EventArgs e)</code>
<code> </code><code>{</code>
<code> </code><code>//使用FolderBrowserDialog類,它提示使用者浏覽、建立并最終選擇一個檔案夾</code>
<code> </code><code>FolderBrowserDialog fole = </code><code>new</code> <code>FolderBrowserDialog();</code>
<code> </code><code>//設定是否顯示“建立檔案夾”按鈕 (false為不顯示 true為顯示)</code>
<code> </code><code>fole.ShowNewFolderButton = </code><code>true</code><code>;</code>
<code> </code><code>//設定顯示提示标題文字</code>
<code> </code><code>fole.Description = </code><code>"請選擇媒體檔案夾"</code><code>;</code>
<code> </code><code>//判斷是否點選了确定按鈕</code>
<code> </code><code>if</code> <code>(fole.ShowDialog() == DialogResult.OK)</code>
<code> </code><code>{</code>
<code> </code><code>//執行個體化目錄資訊的類 (檔案夾的全路徑)</code>
<code> </code><code>DirectoryInfo dir = </code><code>new</code> <code>DirectoryInfo(fole.SelectedPath);</code>
<code> </code><code>txtBoxFile.Text = fole.SelectedPath.ToString();</code>
<code> </code><code>//擷取總檔案數目MP3和wma</code>
<code> </code><code>int</code> <code>nFileCount = 0;</code>
<code> </code><code>FileInfo[] file = dir.GetFiles();</code>
<code> </code><code>for</code> <code>(</code><code>int</code> <code>i = 0; i < file.Length ; i++)</code>
<code> </code><code>{</code>
<code> </code><code>if</code> <code>(file[i].Extension.ToLower().Equals(</code><code>".mp3"</code><code>) || file[i].Extension.ToLower().Equals(</code><code>".wma"</code><code>))</code>
<code> </code><code>{</code>
<code> </code><code>nFileCount = nFileCount + 1;</code>
<code> </code><code>}</code>
<code> </code><code>}</code>
<code> </code><code>lblFileCount.Text = </code><code>"總歌曲數是:"</code> <code>+ nFileCount.ToString() + </code><code>"首"</code><code>;</code>
<code> </code><code>//周遊檔案夾中所有檔案(除子檔案夾)</code>
<code> </code><code>foreach</code> <code>(FileInfo info </code><code>in</code> <code>dir.GetFiles())</code>
<code> </code><code>//判斷檔案的字尾名 進行篩選</code>
<code> </code><code>if</code> <code>(info.Extension.ToLower().Equals(</code><code>".mp3"</code><code>) || info.Extension.ToLower().Equals(</code><code>".wma"</code><code>))</code>
<code> </code><code>//把篩選後的檔案添加到ListBox控件的集合中</code>
<code> </code><code>listFileName.Items.Add(info.FullName);</code>
<code> </code><code>}</code>
<code> </code><code>}</code>
2)開始轉換的代碼如下:
<code>DateTime strStartTime = DateTime.Now;</code>
<code> </code><code>for</code> <code>(</code><code>int</code> <code>i = 0; i < listFileName.Items.Count; i++)</code>
<code> </code><code>string</code> <code>strOldName = listFileName.Items[i].ToString();</code>
<code> </code><code>string</code> <code>strFileName = strOldName.Substring(strOldName.LastIndexOf(</code><code>'\\'</code><code>) + 1);</code>
<code> </code><code>//擷取歌手和歌曲名和檔案格式</code>
<code> </code><code>string</code> <code>strSinger = strFileName.Substring(0,strFileName.IndexOf(</code><code>'-'</code><code>)).Trim();</code>
<code> </code><code>string</code> <code>strMusicName = strFileName.Substring(strFileName.IndexOf(</code><code>'-'</code><code>) + 1, (strFileName.LastIndexOf(</code><code>'.'</code><code>) - strFileName.IndexOf(</code><code>'-'</code><code>))-1).Trim();</code>
<code> </code><code>string</code> <code>strFormat = strFileName.Substring(strFileName.LastIndexOf(</code><code>'.'</code><code>));</code>
<code> </code><code>string</code> <code>strNewName=strOldName.Substring(0,strOldName.LastIndexOf(</code><code>'\\'</code><code>)+1)+strMusicName+</code><code>'-'</code><code>+strSinger+strFormat;</code>
<code> </code><code>//更改歌曲名稱</code>
<code> </code><code>File.Move(strOldName, strNewName);</code>
<code> </code><code>DateTime strEndTime = DateTime.Now;</code>
<code> </code><code>TimeSpan span = strEndTime - strStartTime;</code>
<code> </code><code>this</code><code>.labTime.Text = </code><code>"花費時間為:"</code> <code>+ (span.TotalMilliseconds).ToString();</code>
其實這段代碼主要就是拼接字元串來完成對檔案名的修改,其實一點也不複雜。
由上面的代碼可以發現,其實這個小工具的代碼很簡單,但是卻解決了我的問題。而且很友善。如果手動修改的話,不僅無趣,而且也不會有什麼收獲。
下面就是自己的測試結果:
①開始轉換前:
②轉換過之後的檔案名:
在轉換的過程中,自動過濾了除歌曲之外的所有檔案。
到這裡檔案名的修改就算是結束了。下面我們就開始在windows下面搭建GitHub,來Commit自己的源代碼。
----------------------------------------------搭建GitHub--------------------------------------------------------------------
三,有了安裝封包件後直接輕按兩下安裝即可(因為下載下傳的是線上安裝包,是以會花費一點時間)。
如下圖:
四,安裝完後,會在桌面出現 兩個快捷方式,如下圖:
第一個是Git的圖形操作界面的快捷方式;第二個是Git的指令行操作快捷方式;
點選右上角建立自己的代碼檔案庫:
點選建立後就會出現下面的界面,我們根據說明填寫自己的代碼資訊:
點選下面的大綠色的按鈕“建立倉庫”後,進入下一步,
我們一定要把這個https://github.com/Chineseqiangzi/RenameMusic.git位址記好,後面會多次用到。
下一步是點選Git Shell快捷方式,先把我們在Git上建立的倉庫clone到本地來。
說明成功連接配接了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 的過程中遇到了很多問題,自己主要是通過網絡搜尋得到了有用的答案,如果大家有興趣,可以閱讀以下部落客的文章。希望對大家有所幫助。
本文轉自yisuowushinian 51CTO部落格,原文連結:http://blog.51cto.com/yisuowushinian/1355465,如需轉載請自行聯系原作者