繁体   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