[C#.NET][Winform] 仿不完全的檔案總管
這是某家公司給我的面試題目,如下,一看到題目就直覺使用仿檔案總管的寫法,也就是依需求抄檔案總管的功能,你也可以動腦想想,這樣的題目你會規劃什麼樣的介面。
a.取得三個資料夾所有檔案的資訊(資料夾請自行指定)
b.對所有檔案進行分類(只需要分出三類"影片","圖片"及"音樂")
c.對檔案進行排序(依"作者","專輯"及時間)
(1) 對音樂進行作者的排序
作者(資料夾)->專輯(資料夾)->歌曲(字母)
(2)對相片做二種的分類
使用者可以自己切換排序方式(專輯和時間)
專輯(資料夾)->相片(檔案)
時間(月份資料夾)->時間(日期資料夾)->相片(檔案)
a.使用之前練習過的treeView [C#.NET][VB.NET] 如何 列舉 Registry / 使用 treeView 實作,主要動作
a-1.展開節點時列出資料夾,並加入資料夾。
a-2.點選節點(資料夾)時,列出該資料夾的目錄及檔案,加入至ListView,其中讀取MP3 Tag的部份得參考[C#.NET][VB.NET] 如何 使用 FileStream 讀 / 寫 MP3 標籤 tag
b.使用ListView進行分類
c.使用ListView進行排序
一開始我在心中想著要如此實作,動作流程大致上確認是這樣,接下來就要捲袖實作了,我對ListView控制項的事件不是很熟,應該是說所有的控制項都不是很熟,誰記得了所有控制項的事件生命週期,但大致上查MSDN就能很清楚的知道我要的功能在哪裡,MSDN的範例若看不懂,再搭配google加上實作測試,才能很快的找到我要的功能,這個題目並不難,演算法很簡單,很單純的撈取資料夾以及檔案資訊,UI的動作流程才是殺掉我大部份時間的兇手,花了我一天半的時間><!!!
還有一點,加入ListView時顯示那些檔案的icon,基本上是取得OS的檔案關聯圖示,這是利用SHGetFileInfo API來達成。
http://support.microsoft.com/kb/319350/zh-tw
http://www.cnblogs.com/wdxinren/archive/2005/01/03/85655.html
有心想學習的人可以挑戰自己看看,需要多久的時間來完成,動手練習,學到的東西就是自己的,小的在此拋磚引玉的獻出自己的專案,在您享用專案範例的時候(雖然範例寫的很亂),希望你自己重頭到尾能動手練習。
範例下載:FileManager.zip
若有謬誤,煩請告知,新手發帖請多包涵
Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET