在C#中,有没有一种简单的方法通过文件扩展名确定它的类型?例如,如果我传递一个“.txt”文件扩展名,它将返回“文本文件”,或者如果我传递“.pdf”它将返回“Adobe Acrobat Reader”。我看到Windows资源管理器内置了这种行为,在“类型”列下。是否有一种方法在C#中模仿这个功能呢?
在C#中,有没有一种简单的方法通过文件扩展名确定它的类型?例如,如果我传递一个“.txt”文件扩展名,它将返回“文本文件”,或者如果我传递“.pdf”它将返回“Adobe Acrobat Reader”。我看到Windows资源管理器内置了这种行为,在“类型”列下。是否有一种方法在C#中模仿这个功能呢?
如果您想获取资源管理器中显示的内容并且愿意使用COM互操作,您可以使用Shell.Application类以最少的代码量来获取它。如果您要添加引用,请浏览到X:\ windows \ system32 \ shell32.dll,这将导入shell32的类型库。然后只需使用以下代码:
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); }
检查注册表;你可以从那里获取数据