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

时间:2011-04-02 12:25:59

标签: c# .net wpf icons drives

如果Icon.ExtractAssociatedIcon(filePath)the only way,则可以在.NET&&如果它不适用于驱动器和目录(是吗?)那么你如何为它们获取图标?

换句话说,我想

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

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

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

1 个答案:

答案 0 :(得分:11)

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

以下是一些示例代码,说明如何执行此操作:Getting Associated Icons Using C#