Как определить, является ли файл неизвестным типом файла С#

У меня есть строка расширения файла. И я думаю, что вопрос говорит сам за себя

Редактировать:
- неизвестно компьютеру (windows); Файл, для которого не установлена ​​программа по умолчанию


person vhoyer    schedule 15.05.2016    source источник
comment
Это не так. Что значит «неизвестно»? Неизвестно кому? Какой-то список у вас есть? Окна? Google?   -  person Charles Mager    schedule 15.05.2016
comment
Что именно вы подразумеваете под неизвестным типом файла? Файл, для которого не установлена ​​программа по умолчанию?   -  person ChrisF    schedule 15.05.2016
comment
Строка расширения файла. Какое расширение файла?   -  person Dan Cundy    schedule 15.05.2016
comment
@ChrisF Файл, для которого не установлена ​​программа по умолчанию.   -  person vhoyer    schedule 15.05.2016
comment
проверьте этот ответ на вопрос для некоторого руководства. ссылка   -  person Oogway    schedule 15.05.2016
comment
Мне нравится И я думаю, что вопрос говорит сам за себя ... и тогда вам пришлось отредактировать свой вопрос, потому что он не был понятен сам по себе.   -  person Dan Cundy    schedule 15.05.2016


Ответы (1)


Непосредственно под HKEY_CLASSES_ROOT в реестре есть ряд ключей, которые являются распространенными (и не очень) расширениями файлов.

В первом случае, если ключ расширения не существует, то он действительно неизвестен системе.

Под каждым из этих ключей могут быть другие ключи:

  • Постоянный обработчик
  • OpenWithList
  • OpenWIthProgIds
  • ШеллЭкс
  • и т. д.

в зависимости от типа файла.

Наличие одного (или нескольких) из этих ключей скажет вам, может ли система открыть файл и какие программы установлены, которые могут.

Вы получаете доступ к разделу реестра через RegistryKey класс

Например, если вы вызываете OpenSubKey с имя расширения, оно сообщит вам, существует ли оно или нет, по успешному или неудачному вызову. Если это удастся, вы можете проверить подразделы, чтобы узнать, какая программа (если есть) может открыть файл.

person ChrisF    schedule 15.05.2016