2009-12-05 3 views
3

Есть ли простой способ определить, какой файл является его расширением в C#? Например, если я передаю расширение файла «.txt», тогда он вернет «Текстовый документ», или если я передам его «.pdf», он вернет «Adobe Acrobat Reader». Я вижу это поведение, встроенное в проводник Windows, в столбце «Тип». Есть ли способ имитировать это в C#?Есть ли простой способ определить, какой файл является его расширением в C#?

ответ

-3

Проверьте реестр; вы можете получить эти данные оттуда

+0

Это немного широк. Как насчет некоторых ссылок? –

+0

Я понял, что googling C# «тип файла реестра» не является операцией Брайана – Pierreten

+7

Я, и правописание мозга не является наукой о роке: p –

4

Если вы хотите, чтобы получить то, что исследователь фактически показывает и готовы использовать 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); 
}
+0

Это, кажется, работает идеально. Будет ли это работать во всех версиях Windows? XP, Vista и Windows 7? – Icemanind

+0

Он должен делать, COM-объект существует уже целую вечность. Но я только лично пробовал этот код на 7. – tyranid