Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从没有WinAPI的文件、文件夹或驱动器中获取相关图标_C#_.net_Icons - Fatal编程技术网

C# 从没有WinAPI的文件、文件夹或驱动器中获取相关图标

C# 从没有WinAPI的文件、文件夹或驱动器中获取相关图标,c#,.net,icons,C#,.net,Icons,有没有一种方法可以在不使用任何DllImports的情况下在C#中获取相关图标 当我使用Icon.ExtractAssociatedIcon时,我似乎无法获得环境中的驱动器、文件夹、特殊文件夹或网络连接文件夹上的任何文件的图标。那么,使用.NET获取图标还有其他方法吗?不是对您问题的回答,但可能有用 您可以从此文件中获取大多数ms windows图标 $VisualStudioInstallationDirectory\Common7\VS2008ImageLibrary\VS2008Image

有没有一种方法可以在不使用任何DllImports的情况下在C#中获取相关图标


当我使用Icon.ExtractAssociatedIcon时,我似乎无法获得环境中的驱动器、文件夹、特殊文件夹或网络连接文件夹上的任何文件的图标。那么,使用.NET获取图标还有其他方法吗?

不是对您问题的回答,但可能有用

您可以从此文件中获取大多数ms windows图标

$VisualStudioInstallationDirectory\Common7\VS2008ImageLibrary\VS2008ImageLibrary.zip


如果您仍然使用VS2005,请将2008替换为2005。Net只有一种提取关联图标的方法,而且您已经提到过。你能找到的每个库都使用Pinvoke,因为它们从windows中获取图标。因此,如果您需要完全可移植的图标提取引擎,您必须自己编写,很遗憾,但这是唯一的方法(并将所有特定于系统的代码隐藏在其中)。

Hm,这很不幸。谢谢你的帮助。这篇关于CodeProject的文章可能会有所帮助。如果你下载他的源代码,他正在使用DllImport(“kernel32”…)。我希望能够在非Windows系统上使用我的代码(而不必使用#if语句更改大量代码)。我怀疑是否有一种可移植的方法可以跨操作系统提取图标Java是可移植的,就我所知Java可以提取所有类型的图标,还是我错了?