Имя файла - это имя, по которому файл определяется в своей папке. Имя файла состоит из основного имени и необязательного расширения, разделенных точкой. В tmp.txt основное имя - tmp, а расширение - txt.
В отчете метаданных поле File Name показывает это имя. Вы можете выбрать имя и изменить его позже, так как имя не является частью содержимого файла.
Откуда берется значение
Файловая система хранит имя файла в папке, а не внутри файла. Поэтому считыватель метаданных ExifTool называет File Name псевдотегом, как и размер файла.
Некоторые форматы также хранят имя внутри файла:
- Архив ZIP хранит имя каждого файла, который он содержит, с необязательным относительным путем.
- Файл gzip может хранить исходное имя сжатого файла, без имен папок.
- Тег ID3v2, который используется в файлах MP3, может хранить исходное имя файла в кадре
TOFN.
Загружаемый файл также может получить предложенное имя извне. Веб-сервер может передать это имя в заголовке 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, с расширением или без него. По правилам именования MicrosoftNUL.txtрассматривается так же, какNUL. - Имя не должно оканчиваться пробелом или точкой. Файловая система может принять такое имя, но оболочка Windows - нет.
Стандарт POSIX для переносимых операционных систем менее строгий. Имя файла POSIX может содержать любой байт, кроме косой черты и нулевого байта.
Для имени, которое безопасно переносить между системами POSIX, POSIX определяет переносимый набор символов. В него входят буквы от A до Z и от a до z, цифры от 0 до 9, точка, знак подчеркивания и дефис. POSIX не рекомендует использовать дефис в качестве первого символа, так как это может вызывать проблемы в командной строке.
Почему это важно
Имя файла должно быть уникальным в своей папке. Расширение является частью имени. Поэтому 2 файла с одним и тем же основным именем и разными расширениями могут находиться в одной папке.
Переименование файла не меняет его содержимое, а новое расширение не меняет формат. ExifTool может записать новое File Name, не изменяя сам файл.
Обычно ExifTool читает заголовок файла, чтобы определить тип файла. Специальный быстрый режим пропускает заголовок и берет тип файла из расширения.
Заголовок, сохраненный внутри файла, отделен от имени файла. PDF может хранить Title, а тег ID3v2 хранит название песни в кадре TIT2. Переименование файла не меняет ни один из этих заголовков.