Типы файлов

В этом разделе объясняется, как создать новые типы файлов и связать приложение с типом файла и другими четко определенными типами файлов. Файлы с общим расширением общего имени файла (.doc, .html и т. д.) имеют один и тот же тип. Например, при создании нового текстового редактора можно использовать существующий тип файла .txt. В других случаях может потребоваться создать файл нового типа.

Эта тема организована следующим образом:

Дополнительные сведения можно найти в следующих разделах:

Типы общедоступных и частных файлов

Общедоступные типы файлов также известны как популярные или спорные типы, так как конкурирующие приложения могут быть связаны с этими типами файлов. Характеристики общедоступных типов файлов:

  • Как правило, они определяются органами по стандартам и/или продвигаются их определяющими организациями как форматы обмена.
  • Они часто обмениваются между компьютерами и пользователями для различных целей.
  • Они должны поддерживаться на разных платформах.
  • Приложения от нескольких поставщиков, скорее всего, будут обрабатывать их.

Некоторые примеры типов файлов, которые считаются общедоступными, — это типы файлов изображений .png, .gif, .jpg и .bmp, а также типы звуковых файлов WAV, .mp3 и AU.

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

Примечание

Windows не различает типы общедоступных и частных файлов. Различие имеет значение только при принятии решений о выборе регистрации типа файла.

 

Регистрация типа файла

Чтобы связать тип файла с существующим приложением, найдите приложение ProgID в реестре. Чтобы связать тип файла с новым приложением, определите ProgID для приложения. Сведения об определении нового Идентификатора ProgID см. в разделе Программные идентификаторы.

Подразделы расширения имени файла имеют следующую общую форму: extension=ProgID. Подразделы расширения имени файла хранятся в поддереве HKEY_CLASSES_ROOT .

Важно включить в реестр начальную точку (.) при создании подразделов типов файлов. Например, если требуется, чтобы тип файла с коротким расширением .myp и long .myp-file открывался с помощью приложения MyProgram, используйте следующий синтаксис:

HKEY_CLASSES_ROOT
   .myp
      (Default) = ApplicationVendor.MyProgram
   .myp-file
      (Default) = ApplicationVendor.MyProgram
   ApplicationVendor.MyProgram
      (Default) = MyProgram Application

Как показано в предыдущем примере, если вы также регистрируете расширение короткого имени файла (MYP), необходимо также создать подраздел для расширения long (MYP-file). Дополнительные сведения см. в разделе Обработчики типов файлов.

Задание дополнительных подразделов и атрибутов расширения типа файла

Записи расширения типа файлов в реестре имеют несколько необязательных подразделов и атрибутов.

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

Параметр реестра Действие
Значение по умолчанию Задайте для подраздела расширения значение по умолчанию progID, с которым он связан.
Тип содержимого Задайте для параметра Content Type (Тип контента) тип контента MIME для типа файла.
OpenWithList Не используйте. Этот подраздел содержит один или несколько подразделов приложений для приложений, которые отображаются в записи Открыть с помощью диалогового окна для типа файла и предназначены только для .exe приложений в операционных системах до Windows XP. Вместо этого используйте OpenWithProgIds.
OpenWithProgIds Этот подраздел содержит список альтернативных идентификаторов ProgID для этого типа файлов. Программы для этих идентификаторов ProgID отображаются в меню Открыть с помощью и доступны в качестве приложений Магазина Windows по умолчанию для типа файлов. Всякий раз, когда приложение получает этот тип файла путем изменения значения по умолчанию, оно также должно добавить запись в этот список.
PerceivedType Присвойте параметру PerceivedType значение PerceivedType, к которому принадлежит файл, если таковой имеется. Эта строка не используется версиями Windows, предшествующими Windows Vista. Дополнительные сведения см. в разделе Воспринимаемые типы и регистрация приложений.

 

Общая форма подраздела расширения имени файла выглядит следующим образом. Все типы записей относятся к типу REG_SZ .

HKEY_CLASSES_ROOT
   .ext
      (Default) = ProgID.ext.1
      Content Type = MIME content type
      PerceivedType = PerceivedType
      OpenWithProgids
         ProgID2.ext.1
         ProgID3.ext.1
      ProgID.ext.1
         shellnew

Ниже приведены важные рекомендации по поводу типов файлов.

  • Поддеревье HKEY_CLASSES_ROOT — это представление, сформированное путем объединенияклассов программного обеспечения HKEY_CURRENT_USER\иклассовпрограммного\обеспечения\ HKEY_LOCAL_MACHINE \

  • Как правило, HKEY_CLASSES_ROOT считывается из , но не записывается в . Дополнительные сведения см. в статье HKEY_CLASSES_ROOT .

  • Чтобы глобально зарегистрировать тип файла на определенном компьютере, создайте запись для этого типа файла в подразделе HKEY_LOCAL_MACHINE\Классов программного обеспечения\.

  • Чтобы сделать регистрацию типа файла видимой только для текущего пользователя, создайте запись для этого типа файла в подразделе HKEY_CURRENT_USER\Классов программного обеспечения\.

  • Приложение может предоставлять собственную реализацию команды, например open или play, как показано в следующем примере реестра.

    HKEY_CLASSES_ROOT
       Applications
          ApplicationName.exe
             shell
                verb
    

    Подразделы подраздела команды включают командную строку и метод drop target: command и DropTarget.

  • При создании или изменении сопоставления файлов важно уведомить систему о том, что вы внесли изменения. Для этого вызовите SHChangeNotify и укажите событие SHCNE_ASSOCCHANGED . Если вы не вызываете SHChangeNotify, изменение может быть распознано только после перезагрузки системы.

  • Чтобы получить сведения о реестре, касающиеся сопоставления файлов, используйте интерфейс IQueryAssociations . Сценарий, иллюстрирующий эту процедуру, см. в разделе Пример сценария сопоставления файлов.

Примечание

Подразделы реестра "Пути к приложениям " и "Приложения " используются для регистрации и управления поведением системы от имени приложений. Дополнительные сведения об этой функции см. в разделе Регистрация приложений.

 

Удаление сведений реестра во время удаления

При удалении приложения идентификаторы ProgID и большинство других сведений реестра, связанных с этим приложением, должны быть удалены в ходе удаления. Однако приложения, которые взяли на себя права владения типом файлов (задав значение по умолчанию подраздела HKEY_CLASSES_ROOT.extension\ типа файла в ProgID приложения), не должны пытаться удалить это значение при удалении. Если оставить данные в поле По умолчанию, это позволяет избежать трудностей при определении того, является ли другое приложение владельцем этого типа файла, и перезаписывать значение по умолчанию после установки исходного приложения. Windows учитывает значение по умолчанию, только если ProgID обнаружил зарегистрированный ProgID. Если progID не зарегистрирован, он игнорируется.

Обратите внимание, что другие сведения о владельцах типов файлов хранятся в поддереве HKEY_CURRENT_USER , а также используются только при регистрации приложения, на которое оно ссылается. Таким образом, эти данные не нужно удалять при удалении приложения.

В качестве примера ниже показано состояние реестра перед удалением приложения.

HKEY_CLASSES_ROOT
   .mp3
      (Default) = YourProgID
   YourProgID
      shell
         open
            command
               (Default) = yourapp.exe %1

Ниже показано состояние тех же записей реестра после удаления приложения.

HKEY_CLASSES_ROOT
   .mp3
      (Default) = YourProgID
   YourProgID subkey removed

Типы файлов, поддерживающие открытые метаданные

В Windows 7 и более поздних версиях следующие типы файлов поддерживают открытые метаданные.

Тип файла Расширения имен файлов
Документы Office 2007 .docx, .xlsx, .pptx
Документы Office 97–2003 .doc, .xls, .ppt
Сохраненные поисковые запросы .search-ms
Форматы на основе Windows Media (контейнер расширенного формата потоковой передачи (ASF) WMV, WMA
MP4 (обработчик свойств) .mp4, .m4a, .m4v, .mp4v, .m4p, .m4b, .3gp, .3gpp, .3gp2, .mov

 

Регистрация приложения

Принцип работы сопоставлений файлов

Просмотр содержимого по типу или типу файла

Средство проверки типов файлов

Обработчики типов файлов

Программные идентификаторы

Воспринимаемые типы

Массивы ассоциаций