文件關聯

文件關聯是将文件与一个能打开它的程序相关联。但文件关联常把一类文件（常取决于其文件扩展名，例如.txt） 关联到相应的应用程序（例如文本编辑器）。

关联和操作
一个文件扩展名可以有很多个关连程序来处理不同的操作。一些操作如：
打开  打开一个文件
编辑  打开一个文件以编辑
打印  打印一个文件

例如：一张图片可以用图片浏览器打开，用图片编辑程序编辑,用打印功能发送到打印机

实现
大多数操作系统 使用各种不同的方式支持文件关联。例如，从文件管理器中打开一个文件会调用打开功能以使用它的关联程序。附加的功能，例如打印 常常使用右键菜单。存在一种修饰文件关联的机制，例如在Windows Shell中使用打开方式。

Microsoft Windows
在Windows系列的操作系统中, 从windows 95开始支持基于插件的关联，关联类型保存于注册表中，每个类型都有一系列的描述。旧版系统中支持打开操作的关联，这可在WIN.INI中定义。

文件关联可以通过使用assoc命令来查看和编辑，通过使用ftype命令以查看是否可以创建当前文件类型与应用程序之间的关联。

Windows外壳通过组件对象模型，拖拽或命令行来调用文件关联行为。Windows文件关联的高级特性包括人工定义一个新的使用任意数量关联行为的文件扩展，一个默认动作，仅仅显示特定的文件类型的扩展，调整文件类型的图标与描述和定制关联的MIME类型和他们的处理方法。这个功能可以配置文件关联的高级配置，但在Windows Vista和之后的系统中被移除。

Linux
在linux的桌面环境中，例如KDE与GNOME，支持基于MIME类型的文件关联。例如：MIME类型通过代码text/plain 将会被关联到文本文件编辑器上。

macOS 
Mac OS X 开始支持基于文件扩展名的文件类型关联。

macOS 应用程序在它们的 Info.plist 文件中声明支持打开的文件类型。对于每个特定类型都有一个统一类型标识符（UTI），以及定义可以识别该类型的文件或数据的标记列表。例如，JPEG 类型的 UTI 是 "public.jpeg"，标记的扩展名是 "jpg" 和 "jpeg"，MIME 类型 "image/jpeg" 以及类型码（Tyoe codes）“JPEG“。

macOS 使用这些信息生成能够打开每种类型文件的应用程序列表，Finder 会根据每个文件的 UTI 标识使用默认的应用程序打开该文件，用户也可以选择使用其他支持该文件类型的应用程序来打开文件。

使用此系统，类型还可以与没有文件名或缺少文件扩展名的数据进行关联，包括使用 HTTP 等协议的剪贴板数据和数据流（带有 MIME 类型）。

参考
http://technet.microsoft.com/en-us/library/bb490865.aspx  
https://specifications.freedesktop.org/mime-apps-spec/mime-apps-spec-1.0.1.html 
https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/understanding_utis/understand_utis_intro/understand_utis_intro.html#//apple_ref/doc/uid/TP40001319 

元数据