Есть ли простой способ определить, что файл по расширению в C #? - PullRequest
3 голосов
/ 05 декабря 2009

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

Ответы [ 4 ]

4 голосов
/ 05 декабря 2009

Если вы хотите получить то, что на самом деле показывает проводник, и готовы использовать 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);
}
1 голос
/ 05 декабря 2009

Используйте Класс реестра для запроса куста HKCR.

1 голос
/ 05 декабря 2009

Посмотрите на этот класс

C # FileAssociation Class

0 голосов
/ 05 декабря 2009

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

...