簡體   English   中英

如何在C#中獲取與文件類型相對應的圖標?

[英]How can I get the icon corresponding to a file's type in C#?

我需要獲取與文件類型而不是文件關聯的圖標。

我使用type => filename.type將文件存儲在數據庫中,但是這些文件不必存在於硬盤上。

因此,我需要傳遞類型並獲取其圖標

  • 我不想使用具有用戶所需管理權限的解決方案。
  • 如果可能的話,僅托管代碼
  • 如果可能,不要涉及注冊表訪問

你有什么建議?

您可以調用SHGetFileInfo()

如果文件不存在,那么您將需要使用SHGFI_USEFILEATTRIBUTES標志:

如果uFlags參數包含SHGFI_USEFILEATTRIBUTES標志,則此參數不必是有效的文件名。 該函數將繼續進行,就好像該文件以指定的名稱存在並且帶有在dwFileAttributes參數中傳遞的文件屬性一樣。 這允許您通過僅傳遞pszPath的擴展名並在dwFileAttributes中傳遞FILE_ATTRIBUTE_NORMAL來獲取有關文件類型的信息。

像往常一樣, pinvoke.net擁有從托管代碼中獲取所需信息。

您可以使用Win32 API SHGetFileInfo ,但是我認為該文件應該存在才能正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM