如何在C#中获取与文件类型对应的图标?

时间:2011-03-07 11:30:56

标签: c# .net file icons file-type

我需要获取与文件类型相关联的图标而不是文件名称

我使用type =>存储在我的数据库文件中filename.type,但这些文件不需要存在于硬盘上。

因此我需要传递类型并获取它的图标

  • 我不想使用具有用户所需管理权限的解决方案。
  • 如果可能,只有托管代码
  • 如果可能,请不要涉及注册管理机构访问

你有什么建议?

2 个答案:

答案 0 :(得分:1)

您可以拨打SHGetFileInfo()

如果文件不存在,则需要使用SHGFI_USEFILEATTRIBUTES标志:

  

如果uFlags参数包含   SHGFI_USEFILEATTRIBUTES标志,这个   参数不必是有效的   文件名。该功能将继续   好像该文件存在于   指定的名称和文件   传递的属性   dwFileAttributes参数。这个   允许您获取有关的信息   通过传递一个文件类型   pszPath和传递的扩展   FILE_ATTRIBUTE_NORMAL in   dwFileAttributes。

像往常一样,pinvoke.net拥有从托管代码中获取此信息的必要信息。

答案 1 :(得分:0)

您可以使用Win32 API SHGetFileInfo ,但我认为该文件应该存在才能生效。