词典

什么是文件名?

文件名是文件在其文件夹中的名称,例如 tmp.txt。文件系统在文件之外保存这个名称,你可以更改这个名称。

file-name

文件名是在其文件夹中用来标识文件的名称。一个文件名由基本名和可选的扩展名组成,两者以句点分隔。在 tmp.txt 中,基本名是 tmp,扩展名是 txt。

在元数据报告中,File Name 字段会显示这个名称。你可以选择这个名称并在之后修改,因为名称不属于文件内容的一部分。

数值的来源

文件系统在文件夹中保存文件名,而不是在文件内部。因此,元数据读取器 ExifTool 将 File Name 称为伪标签,就像文件大小一样。

有些格式也会在文件内部存储一个名称:

  • ZIP 压缩包会保存其包含的每个文件的名称,以及可选的相对路径。
  • gzip 文件可以保存它所压缩文件的原始名称,但不包含任何文件夹名称。
  • MP3 文件中的 ID3v2 标签可以在 TOFN 帧中保存原始文件名。

下载时也可以从文件外部获得一个建议名称。Web 服务器可以在 Content-Disposition 头中发送这个名称,例如 filename=example.html。保存下载内容的程序应该只把这个名称当作建议。

该数值的格式

File Name 显示带扩展名的完整名称,但不包含文件夹路径。ExifTool 将文件夹单独保存在 Directory 字段中。对很多格式来说,扩展名与文件类型相匹配。

Windows 会把 OSCAR、Oscar 和 oscar 当作同一个名称。POSIX 文件系统可以把它们视为 3 个不同的名称。在 Windows 上,一个名称通常限制为 255 个字符,而经典完整路径限制为 260 个字符。

文件名中哪些字符不能使用

在 Windows 上,文件名必须遵循以下规则:

  • 名称中不能包含字符 :、"、/、|、?、*、反斜杠、小于号或大于号。
  • 名称中不能包含整数值从 0 到 31 的字符。
  • 名称不能是保留设备名称,例如 CON、PRN、AUX、NUL、COM1 或 LPT1,无论是否带扩展名。根据 Microsoft 的命名规则,NUL.txt 与 NUL 被视为相同。
  • 名称末尾不能是空格或句点。文件系统可能会接受这样的名称,但 Windows 外壳不会。

面向可移植操作系统的 POSIX 标准限制更少。POSIX 文件名可以包含除斜杠和空字节之外的任何字节。

为了让名称在不同 POSIX 系统之间安全移动,POSIX 定义了一套可移植字符集。该字符集包含 A 到 Z、a 到 z、数字 0 到 9、句点、下划线和连字符。POSIX 建议不要把连字符作为第一个字符,因为这可能在命令行中造成问题。

它的重要性

在同一文件夹中,文件名必须唯一。扩展名属于文件名的一部分。因此,两个具有相同基本名但扩展名不同的文件可以在同一个文件夹中共存。

重命名文件不会改变其内容,新扩展名也不会改变格式。ExifTool 可以在不修改文件本身的情况下写入新的 File Name。

通常,ExifTool 会读取文件头来确定文件类型。一种特殊的快速设置会跳过文件头,而是根据扩展名来判断文件类型。

存储在文件内部的标题与文件名是分开的。PDF 可以存储一个 Title,而 ID3v2 标签会在 TIT2 帧中存储歌曲标题。重命名文件不会改变这两个标题。