今天突然想到一個問題,如何去獲取一個文件的關聯圖標呢?於是就上網搜索了一下。現總結如下:
首先明確問題:獲取一個文件的關聯圖標或者是某個類型文件的顯示圖標。
在網上搜了一圈,發現方法還是比較多的,但是應用C#進行獲取的方法不多。我選擇一種用.Net庫的方法。
使用的類:
System.Drawing.Icon ,位於System.Drawing 命名空間。
具體方法:
System.Drawing.Icon 類中的靜態方法:public static Icon ExtractAssociatedIcon(string filePath)
此方法接收一個文件路徑,返回一個 Icon 類型的對象。此對象既是指定文件的 Icon 圖標對象。
此 Icon 類提供了 Save 方法,可以將 Icon 文件寫入流中,進而保存至硬盤文件。
當然要在程序中顯示也是可以的,Icon 類提供了 ToBitmap 方法,可以將 Icon 文件轉換為 Bitmap。Bitmap 就可以在 PictureBox 中顯示了。
如果要根據後綴名來獲取文件圖標,那要怎麼辦呢?我想了一個比較笨的辦法。看代碼~
string fileName = "tmp." + houzhuiming;
File.Create(fileName).Close();
Image img = System.Drawing.Icon.ExtractAssociatedIcon(fileName).ToBitmap();
File.Delete(fileName);
如此,新建一個指定後綴名的文件,獲取圖標後直接刪除,就能獲得指定文件後綴名的圖標了。嘻嘻~