获取驱动器和目录的图标:Icon.ExtractAssociatedIcon(filePath)不起作用?

Spe*_*ump 5 .net c# wpf icons drives

如果它Icon.ExtractAssociatedIcon(filePath)是在.NET &&中获取图标的唯一方法,如果它不适用于驱动器和目录(是吗?)那么你如何为它们获取图标?

换句话说,我想

foreach (string driveName in Directory.GetLogicalDrives())
//if (System.IO.Directory.Exists(driveName))
{
    using (System.Drawing.Icon systemIcon = System.Drawing.Icon.ExtractAssociatedIcon(driveName))
    { ... }
}
Run Code Online (Sandbox Code Playgroud)

^这显然不起作用(仅适用于文件)

我不确定System.IO.Directory.Exists(file)检测驱动器是否存在的正确方法......

HAB*_*JAN 11

要从.NET应用程序执行此操作,您必须从Windows API(在其中定义)P/Invoke该SHGetFileInfo函数shell32.dll.

下面是一些示例代码,说明如何执行此操作:使用C#获取关联图标