3

有没有一种简单的方法可以通过 C# 中的扩展名来确定文件是什么?例如,如果我传递“.txt”的文件扩展名,那么它将返回“文本文档”,或者如果我传递“.pdf”,它将返回“Adobe Acrobat Reader”。我在 Windows 资源管理器的“类型”列下看到了这种行为。有没有办法在 C# 中模仿这个?

4

4 回答 4

4

如果您想获得资源管理器实际显示的内容并愿意使用 COM 互操作,您可以使用 Shell.Application 类以最少的代码量获得它。如果要添加引用,请浏览到 X:\windows\system32\shell32.dll,它将导入 shell32 的类型库。然后只需使用代码:

字符串 GetFileType(字符串路径)
{
   Shell32.ShellClass shell = new Shell32.ShellClass();
   Shell32.Folder 文件夹 = shell.NameSpace(Path.GetDirectoryName(path));

   Shell32.FolderItem item = folder.ParseName(Path.GetFileName(path));
   返回文件夹.GetDetailsOf(item, 2);
}
于 2009-12-05T08:23:08.773 回答
1

使用Registry 类查询 HKCR 配置单元。

于 2009-12-05T08:01:16.220 回答
1

看看这堂课

C# 文件关联类

于 2009-12-05T08:04:10.257 回答
-3

检查注册表;你可以从那里得到这些数据

于 2009-12-05T07:58:58.280 回答