词典

什么是文件类型?

文件类型是指文件的格式名称,例如 JPEG、MP3 或 PDF。它主要来自文件前几个字节,而不仅仅是文件名。

file-type

文件类型告诉你这是哪种文件,比如 JPEG 图片或 PDF 文档。它给出了文件的格式名称,这个格式决定了文件内部数据是如何排列的。

在元数据报告中,File Type 字段以简短名称显示这个格式,例如 JPEG 或 PDF。这个数值主要来自文件内容,所以可能和文件名扩展名不同。

该数值的格式

File Type 是一个简短名称。对很多格式来说,它就是文件名扩展名的大写形式。

  • PNG 图像对应的 PNG
  • MP4 表示 MP4 视频
  • PDF 文档对应的 PDF
  • JPEG 表示一张JPG 照片,不论文件名是以 .jpg、.jpeg 还是 .jpe 结尾
  • TIFF 表示文件名以 .tif 或 .tiff 结尾的图片

有些文件类型共享同一种基本结构。MP4 视频、M4A 音频和 HEIC 图片都基于 QuickTime 格式。

WAV 音频和 WebP 图片基于一种叫 RIFF 的结构。File Type 仍会给出具体类型名称,比如 MP4 或 WAV。

File Type 是两个相关字段的基础:File Type Extension 和 MIME Type。对 JPEG 文件,这两个字段会显示 jpg 和 image/jpeg。对音频和视频文件,ffprobe 程序还会把封装格式报告为 Format Name。

数值的来源

没有相机或程序会把 File Type 写进文件中,你也无法编辑这个数值。元数据读取器 ExifTool 在读取文件时生成 File Type。

ExifTool 首先尝试扩展名所暗示的格式。它会检查文件是否以该格式使用的固定字节模式开头。如果字节不匹配,ExifTool 就会测试它已知的其他格式。

这种模式通常被称为 magic number(幻数)或签名。JPEG 文件以字节 FF D8 FF 开头,PNG 文件以 89 50 4E 47 开头。原始头部会显示这些起始字节。

当没有任何格式匹配时,ExifTool 会显示错误而不是 File Type,例如:

  • 如果 ExifTool 认识扩展名(如 .jpg),则为 File format error
  • 如果扩展名未知或缺失,则为 Unknown file type
  • 如果文件没有数据,则为 File is empty

文件类型与扩展名并不相同

扩展名是文件名的结尾部分,例如 photo.jpg 中的 .jpg。在 Windows 中,扩展名会告诉电脑用哪个程序打开文件,以及显示哪个图标。

任何人都可以更改扩展名,但这不会改变文件内部的数据。把 photo.jpg 重命名为 photo.png 不会把这张照片变成 PNG 图片。

因为 ExifTool 会读取起始字节,File Type 可以显示真实格式。如果一个名为 photo.png 的文件显示 JPEG,那它是一个扩展名错误的 JPEG 图片。

有些格式没有 magic number,所以这个检查并不适用于所有文件。在同一类格式内部,比如基于 TIFF 的 raw 格式,扩展名仍然可以用来区分具体类型。

如何找出你拥有什么类型的文件

  • 检查扩展名。在 Windows 11 文件资源管理器中,选择“查看”,然后“显示”,再勾选“文件扩展名”。在 Windows 10 中,在“查看”选项卡中勾选“文件扩展名”框。
  • 查看文件元数据中的 File Type 字段。
  • 在 Linux 上运行 file 命令。它会运行三组测试,并输出第一个测试成功得到的类型。

它的重要性

当扩展名与文件类型不匹配时,你的电脑可能会选择错误的程序。浏览器会使用来自 web 服务器的 MIME 类型而不是扩展名来决定如何处理文件。