2010-03-16 68 views
0

我最近看到了一個應用程序什麼有兩個簡單的控件(treeView和詳細的ListView)什麼是用於列出目錄和文件。我知道如何做到這一點,但除了列出文件之外,它還有另一個不錯的功能:它從系統shell中加載信息,如文件夾圖標,文件規範(大多數文件類型,從系統繼承,所以如果我有一個應用程序,將SVG文件類型修改爲「Unknown vectorgraphic stuff」,然後將之前的所有SVG文件的類型顯示爲此字符串)。簡單的文件和文件夾視圖在C#

我想問你,我該如何輕鬆製作這些功能而不使用任何第三方庫?

回答

1
  1. 要獲取文件圖標,使用System.Drawing.Icon.ExtractAssociatedIcon
  2. 要獲得文件類型,您需要使用Win32 SHGetFileInfo函數。
  3. 要獲得修改日期,文件大小等,你可以使用的DirectoryInfo的FileInfo類。

你也可以考慮使用像Shell MegaPack這顯示文件/文件夾像這樣具有相同的圖標,詳細信息,菜單現成的控制等

+0

謝謝。殼牌Megapack看起來是最好的解決方案,將嘗試! – fonix232 2010-03-20 10:54:06

1

你可以得到圖標由System.Drawing.Icon.ExtractAssociatedIcon()的文件......

+0

是的,我知道,但它有點令人沮喪添加任何圖標,這。這不是某種自動化版本嗎?我的意思是提取圖標,並用簡單的命令將圖標添加到節點? – fonix232 2010-03-16 15:58:05

+0

好 - 我想你可以獲取當前視圖的所有圖標,並將它們放入樹視圖的ImageList中,然後將圖像ID分配給節點。 但我會做所有者繪製樹視圖節點,並繪製每個節點我會檢索文件/目錄的圖標,並在項目文本之前繪製它。 – Axarydax 2010-03-16 16:21:48

+0

這是不是很慢? 而且,對於treeView,它只需要文件夾圖標。我的更大的問題是listView,它應該在那裏獲得文件的所有圖標,文件類型也是如此... – fonix232 2010-03-16 19:55:26

相關問題