Ассоциация файлов

Материал из Википедии — свободной энциклопедии
Это старая версия этой страницы, сохранённая AbiyoyoBot (обсуждение | вклад) в 16:22, 26 мая 2021 (→‎Примечания: исключение стаб-шаблонов из статей объёмом более 7К (без карточек), косметические правки). Она может серьёзно отличаться от текущей версии.
Перейти к навигации Перейти к поиску

Ассоциация или ассоциирование файлов — в программном обеспечении привязывание файла (по расширению или по каким-либо другим признакам) к прикладной программе, которая обрабатывает эти файлы. При «вызове» этого файла, например, в файловом менеджере, вызовется связанная с ним программа и откроет файл.

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

История

Простейшим способом указать, какой программой открывать файл, был Shebang в Unix (1979). Способ не слишком удачный: работает только для скриптов (текстовых файлов на правах исполняемых), содержит абсолютный путь к программе и потому иногда этот путь приходится менять.

Связывание файлов с программами на уровне системы было впервые представлено в компьютерах Macintosh в начале 1980-х. Для этого применялись так называемые «коды формата» (особое поле файловой системы Macintosh).

В DOS, с его расширениями файлов, Norton Commander предложил файл NC.EXT. В дальнейшем появились сходного формата файлы NCVIEW.EXT и NCEDIT.EXT, отвечавшие за запуск программ просмотра и редакторов соответственно. Похожие вещи были реализованы и в DOS Navigator.

Microsoft Windows предложила «системные» ассоциации файлов и концепцию «глаголов»: что именно надо сделать с файлом, задавалось английской строкой. Наиболее распространённые глаголы Windows — «open» (открыть), «edit» (редактировать), «print» (распечатать), «explore» (просмотреть содержимое). Любая программа могла функцией ShellExecute запустить любой файл (не только программный) — при этом вызывается та программа, которая с этим файлом ассоциирована. Например, если «запустить» HTML-файл, открывается тот браузер, который установлен пользователем, будь это Internet Explorer, Mozilla Firefox, Opera или Google Chrome[1]. Различные схемы URL (http://, ftp:// и т. д.) также могли ассоциироваться со своими программами. Для вызова файла может применяться не только командная строка, но и DDE. Второй, несмотря на то, что это явно устаревшая технология, в ряде случаев предпочтительнее: например, если надо распечатать пять файлов через командную строку, одновременно запускаются пять копий программы, соревнующихся за один принтер. Поэтому отпечатки выходят из принтера в неопределённом порядке; в DDE такой проблемы нет.

Диспетчер файлов отличал ассоциированные файлы (иконка исписанного листа) от неассоциированных (иконка чистого листа); Проводник Windows даёт файлу иконку той программы, которая его открывает. Автозапуск Windows XP позволил запускать разные программы в зависимости от того, что обнаружено на диске: картинки, музыка, видео.

Linux ввёл ассоциации файлов относительно поздно, когда появились графические оболочки. Ассоциирование реализовано через промежуточный слой — MIME-тип: расширение привязывается к типу, а тип — к программе. Похожая настройка реализована в большинстве браузеров: в интернете форматы файлов обычно задаются MIME-типом, а на локальных дисках — расширением.

Mac OS X, в дополнение к кодам формата, позволила ассоциировать файлы и по расширениям.

Программы

Существует ряд специальных программ для изменения ассоциаций типов фалов с программами. Например в Windows встроена программа «сопоставление типов файлов или протоколов», доступная из панели управления. Также существуют различные сторонние программы.

Примечания

  1. Разумеется, возможность вызвать конкретную программу осталась, через функцию CreateProcess.