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

发布于 2024-10-20 09:55:01 字数 245 浏览 2 评论 0原文

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

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

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

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

您有什么建议?

I need to get the icons associated with file types not the file name.

I store in my database files with the type=> filename.type, but those files need not exist on the hard disk.

Therefore I need to pass the type and get the icon for it

  • I do not want to use solutions with administrative rights needed by the user.
  • If possible only managed code
  • If possible don't involve registry access

What do you suggest?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

樱&纷飞 2024-10-27 09:55:01

您可以调用 SHGetFileInfo()

如果该文件不存在,那么您将需要使用 SHGFI_USEFILEATTRIBUTES 标志:

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

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

You can call SHGetFileInfo().

If the file does not exist then you will need to use the SHGFI_USEFILEATTRIBUTES flag:

If the uFlags parameter includes the
SHGFI_USEFILEATTRIBUTES flag, this
parameter does not have to be a valid
file name. The function will proceed
as if the file exists with the
specified name and with the file
attributes passed in the
dwFileAttributes parameter. This
allows you to obtain information about
a file type by passing just the
extension for pszPath and passing
FILE_ATTRIBUTE_NORMAL in
dwFileAttributes.

As usual, pinvoke.net has the necessary information to get to this from managed code.

走野 2024-10-27 09:55:01

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

You can use the Win32 API SHGetFileInfo, but I think the file should exist for it to work.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文