如何在Windows中检索任何给定文件类型的默认图标?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Windows中检索任何给定文件类型的默认图标?相关的知识,希望对你有一定的参考价值。
如何获取Windows默认使用的指定文件类型的图标?
答案
试试这个
public static Hashtable GetTypeAndIcon()
{
try
{
RegistryKey icoRoot = Registry.ClassesRoot;
string[] keyNames = icoRoot.GetSubKeyNames();
Hashtable iconsInfo = new Hashtable();
foreach (string keyName in keyNames)
{
if (String.IsNullOrEmpty(keyName)) continue;
int indexOfPoint = keyName.IndexOf(".");
if (indexOfPoint != 0) continue;
RegistryKey icoFileType = icoRoot.OpenSubKey(keyName);
if (icoFileType == null) continue;
object defaultValue = icoFileType.GetValue("");
if (defaultValue == null) continue;
string defaultIcon = defaultValue.ToString() + "\DefaultIcon";
RegistryKey icoFileIcon = icoRoot.OpenSubKey(defaultIcon);
if (icoFileIcon != null)
{
object value = icoFileIcon.GetValue("");
if (value != null)
{
string fileParam = value.ToString().Replace(""", "");
iconsInfo.Add(keyName, fileParam);
}
icoFileIcon.Close();
}
icoFileType.Close();
}
icoRoot.Close();
return iconsInfo;
}
catch (Exception exc)
{
throw exc;
}
}
另一答案
文件类型的默认图标,无论您是否碰巧有其中一种类型的文件,都在Window的注册表中定义
HKEY_CLASSES_ROOT type DefaultIcon(默认)
...但是当VirtualBlackFox在他对nice c# code sample的回答中有一个How do I get common file type icons in C#?时,为什么要修补它?
以上是关于如何在Windows中检索任何给定文件类型的默认图标?的主要内容,如果未能解决你的问题,请参考以下文章
如何从任何类型的数据库(pdf、xlx、jpg 或 png)中检索文件并使其可在网页上下载?