2009-12-05 60 views
3

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

回答

-3

检查注册表;您可以从那里获取该数据

+0

这有点广泛。如何关联一些链接? –

+0

我认为使用谷歌搜索c#“注册表文件类型”不是布赖恩手术 – Pierreten

+7

雅,拼写大脑也不是热门科学:p –

4

如果你想获得什么样的探险实际显示并愿意使用COM互运,你可以使用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); 
}
+0

这似乎工作完美。这是否适用于所有版本的Windows? XP,Vista和Windows 7? – Icemanind

+0

它应该这样做,COM对象已经存在很久了。但是我只有7个人亲自尝试过这些代码。 – tyranid

相关问题