• <td id="ae6ms"><li id="ae6ms"></li></td>
  • <xmp id="ae6ms"><td id="ae6ms"></td><table id="ae6ms"></table>
  • <table id="ae6ms"></table>
  • <td id="ae6ms"></td>
    <td id="ae6ms"></td>
  • <table id="ae6ms"></table><table id="ae6ms"><td id="ae6ms"></td></table>
  • <td id="ae6ms"></td>
  • <table id="ae6ms"><li id="ae6ms"></li></table>
  • <table id="ae6ms"></table>
    西西軟件園多重安全檢測下載網站、值得信賴的軟件下載站!
    軟件
    軟件
    文章
    搜索

    首頁編程開發其它知識 → 怎么用 IconHandler 2.0 獲取文件圖標

    怎么用 IconHandler 2.0 獲取文件圖標

    相關軟件相關文章發表評論 來源:本站整理時間:2010/9/27 0:39:22字體大?。?em class="fontsize">A-A+

    作者:佚名點擊:244次評論:0次標簽: 圖標

    • 類型:圖片素材大?。?i>14.2M語言:中文 評分:10.0
    • 標簽:
    立即下載

    在 Windows 資源管理器中,我們可以使用圖標方式來查看文件,圖標可以讓我們快速判斷文件的類型,如下圖中所選中的文件,相信大家一眼就能看出是一個 Word 文檔。

    icon1

    設計美觀的圖標讓我們賞心悅目,如果可以把這些小圖標直接用在我們寫的程序中,一定會增色不少。

    但 .Net 并沒有直接提供給我們一個可以直接獲取文件圖標的辦法,如果使用搜索引擎查找解決辦法的話,你會找到很多解決辦法,但大多是以零散的代碼提供的,質量和來源都沒有保證。

    我找到一位國外大牛寫的 IconHandler,分享給大家!

    IconHandler

    IconHandler 是由 MVolo 分享的一個類庫,目前為 2.0 版本,網址為:

    http://mvolo.com/blogs/serverside/archive/2008/04/27/IconHandler-2.0-File-icons-in-ASP.NET-applications.aspx

    下載后打開壓縮包里面如下包含兩個 dll 文件:

    IconHandler2

    第一個文件 ShellIcons.dll 用于從系統中獲取圖標。第二個文件 ShellIconHandler.dll 用于在 ASP.NET 顯示圖標。先看第一個文件。

    ShellIcons.dll

     獲取圖標我們只需要調用 ShellIcons.GetIconForFile 靜態方法,這個方法有三個參數:

    publicclass ShellIcons{    
    publicstatic IconContainer GetIconForFile(string path, bool useExtension, bool largeIcon);
    }

    先來看兩段代碼,這三個參數的含義就自然明白了:

    //WinForm:獲取 rar 文件的大圖標并顯示在 pictureBox1 上
    using (var container = ShellIcons.GetIconForFile(".rar", true, true))
    {
    Icon rarFileLargeIcon = container.Icon;
    Bitmap rarFileLargeBmp = rarFileLargeIcon.ToBitmap();
    pictureBox1.Image = rarFileLargeBmp;}//WinForm:WinForm:獲取 Fiddler.exe 的小圖標并顯示在 pictureBox2 上
    using (var container = ShellIcons.GetIconForFile(@"C:\Program Files\Fiddler2\Fiddler.exe", false, false)){
    pictureBox2.Image = container.Icon.ToBitmap();
    }

    顯示如下:

    ShellIcons 

    ShellIconHandler.dll

    這個 dll 用在 ASP.NET 中顯示圖片,我們先看作者文件中的一張圖片:

    IconHandler-PPTPreview

    這個調用酷吧,使用也比較簡單,首先引用上面這兩個 dll 文件,然后修改 web.config 文件(加入帶下劃線的部分):

    <configuration><!-- ShellIconHandler configuration section declaration --><configSections><sectionname="iconHandler"type="Mvolo.ShellIcons.Web.ShellIconHandlerConfigurationSection"/></configSections><system.webServer><!-- Add IconHandler for IIS 7.0 Integrated mode --><handlers><addname="iconhandler"path="geticon.axd"verb="GET"type="Mvolo.ShellIcons.Web.ShellIconHandler"/></handlers><validationvalidateIntegratedModeConfiguration="false"/></system.webServer><system.web><!-- Add IconHandler for IIS 6.0 / IIS 7.0 Classic mode --><httpHandlers><addpath="geticon.axd"verb="GET"type="Mvolo.ShellIcons.Web.ShellIconHandler"/></httpHandlers></system.web><!--    Icon Handler by Mike Volodarsky    Retrieves the shell icon for the specified file name.    --><iconHandlerenabled="true"alwaysUseExtension="true"enableClientCaching="true"enableServerCaching="true" /></configuration>

    OK 了,我們在首頁顯示幾個圖標試試:

    <imgsrc="geticon.axd?file=.docx&size=small"alt=".docx"/><imgsrc="geticon.axd?file=.xlsx&size=small"alt=".xlsx"/><imgsrc="geticon.axd?file=.pptx&size=small"alt=".pptx"/><br/><imgsrc="geticon.axd?file=.docx"alt=".docx"/><imgsrc="geticon.axd?file=.xlsx"alt=".xlsx"/><imgsrc="geticon.axd?file=.pptx"alt=".pptx"/>

    顯示如下:

    IconHandler-view

    效果不錯吧! (還可以在配置文件中,通過 iconHandler 節的選項來指定是否進行緩存。)

    寫到這里,也許有的朋友會問,網站通常部署在服務器上,如果服務器上沒有安裝 Office 這些圖標能正確顯示嗎?很不幸,不能顯示,IconHandler 通過 shell API SHGetFileInfo 來獲取圖標,如果文件類型沒有在系統中注冊的話,是獲取不到的。但慶幸的是 MVolo 考慮到了這個問題,并給我們供了一個解決辦法:

    在 Web 項目中新建立一個名為 /App_Resources/Icons 的文件夾中,將圖片以下面的方式放入:

    app_resources_icons

    還要再修改下 iconHandler 配置節(加入帶下劃線的部分):

    <configuration><iconHandlerenabled="true"alwaysUseExtension="true"enableClientCaching="true"enableServerCaching="true"useSavedIcons="true"/></configuration>

    我們再測試一下,在首頁中加入以下代碼:

    <imgsrc="geticon.axd?file=.hctx&size=small"alt=".hctx"/><imgsrc="geticon.axd?file=.hctx"alt=".hctx"/><br/>

    預覽如下:

    IconHandler-view2

    解決了,但實際文件類型可能有好幾百甚至上千種,一個個來太麻煩,幸好 MVolo 也為我們提供了另外一個工具。

    IconGen.exe

    使用這個工具我們可以批量生成文件對應的大小圖標,這是一個控件臺應用程序,只需要執行以下兩個命令:

    > IconGen.exe c:\Icons large> IconGen.exe c:\Icons small

    分別生成大小圖標,如下:

    IconGen

    大大小小一共生成了 2038 個圖標!

      相關評論

      閱讀本文后您有什么感想? 已有人給出評價!

      • 8 喜歡喜歡
      • 3 頂
      • 1 難過難過
      • 5 囧
      • 3 圍觀圍觀
      • 2 無聊無聊

      熱門評論

      最新評論

      發表評論 查看所有評論(0)

      昵稱:
      表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
      字數: 0/500 (您的評論需要經過審核才能顯示)
      女人让男人桶30分钟免费视频,女人张开腿让男人桶个爽,一进一出又大又粗爽视频
    • <td id="ae6ms"><li id="ae6ms"></li></td>
    • <xmp id="ae6ms"><td id="ae6ms"></td><table id="ae6ms"></table>
    • <table id="ae6ms"></table>
    • <td id="ae6ms"></td>
      <td id="ae6ms"></td>
    • <table id="ae6ms"></table><table id="ae6ms"><td id="ae6ms"></td></table>
    • <td id="ae6ms"></td>
    • <table id="ae6ms"><li id="ae6ms"></li></table>
    • <table id="ae6ms"></table>