是否有一种简单的方法来确定文件的C#扩展名?例如,如果我通过文件扩展名“ .txt”,则它将返回“文本文档”,或者如果我将其传递“ .pdf”,则将返回“ Adobe Acrobat Reader”。我在“类型”列下看到了Windows资源管理器中内置的这种行为。有没有办法在C#中模仿这一点?
最佳答案
如果要获取资源管理器实际显示的内容并愿意使用COM互操作,则可以使用Shell.Application类以最少的代码获取它。如果要添加引用,请浏览到X:\ windows \ system32 \ shell32.dll,它将导入shell32的类型库。然后只需使用代码:
字符串GetFileType(字符串路径)
{
Shell32.ShellClass shell =新的Shell32.ShellClass();
Shell32.Folder文件夹= shell.NameSpace(Path.GetDirectoryName(path));
Shell32.FolderItem项目= folder.ParseName(Path.GetFileName(path));
返回folder.GetDetailsOf(item,2);
}