有没有一种简单的方法可以通过C#中的扩展来确定文件是什么?

时间:2009-12-05 07:52:00

标签: c# file file-association

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

4 个答案:

答案 0 :(得分:4)

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

string GetFileType(string path)
{
   Shell32.ShellClass shell = new Shell32.ShellClass();
   Shell32.Folder folder = shell.NameSpace(Path.GetDirectoryName(path));

   Shell32.FolderItem item = folder.ParseName(Path.GetFileName(path));
   return folder.GetDetailsOf(item, 2);
}

答案 1 :(得分:1)

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

答案 2 :(得分:1)

看看这个课程

C# FileAssociation Class

答案 3 :(得分:-3)

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