И́мя фа́йла — строка символов, однозначно определяющая в некотором пространстве имён файловой системы (ФС), обычно называемом каталогом, директорией или папкой. Имена файлов строятся по правилам, принятым в той или иной файловой и операционной системах (ОС). Многие системы позволяют назначать имена как обычным файлам, так и каталогам и специальным объектам (символическим ссылкам, блочным устройствам и т. п.).

Имя файла является частью полного имени файла, также называемого полным или абсолютным путём к файлу. Полное имя может включать следующие компоненты:

протокол или способ доступа (http, ftp, file и т. п.); имя или адрес компьютера, узла сети (wikipedia.org, 207.142.131.206, \\MYCOMPUTER, SYS: и т. п.); устройство хранения, диск (C:, /, SYSLIB и т. п.); путь к каталогу (/usr/bin, \TEMP, [USR.LIB.SRC] и т. п.); собственно имя файла, которое может содержать его расширение (.txt, .exe, .COM и т. п.); версия или номер ревизии (perl6, ping6 и т. п.).

Имя файла необходимо для того, чтобы к файлу мог обратиться пользователь. В одном каталоге не может быть двух файлов с одинаковыми именами (некоторые файловые системы регистрозависимы, что оставляет возможность для создания файлов, имена которых отличаются регистром символов).

Имя файла обычно состоит из двух частей, разделенных точкой: Название (до точки, часто также называют именем); Расширение.

Имена файлов в разных системах Полным, или абсолютным, называется имя файла, содержащее все каталоги до корня файловой системы. Относительные имена файлов не содержат полного пути и обычно привязываются к текущему каталогу.

Windows Полное имя файла в Windows-системах состоит из буквы диска, после которого ставится двоеточие и обратная наклонная черта (обратный слеш), затем через обратные слеши перечисляются подкаталоги, в конце пишется имя файла. Пример:

C:\Windows\System32\calc.exe

Полное имя файла (включая расширение) в Windows может содержать до 260 символов (с учётом завершающего символа NULL), данное значение определено константой MAX_PATH в Windows API; например, полное имя файла максимально допустимой длины на диске C будет таким: «C:\<256 символов>NULL» (например, «C:\<254 символа>\<1 символ>NULL»). Однако юникодовые версии некоторых функций позволяют использовать полные имена файлов длиной до 32767 символов, такие имена начинаются с префикса «\\?\». Пример:

\\?\C:\Windows\System32\calc.exe

При использовании префикса «\\?\» необходимо указывать абсолютный путь к файлу, относительные пути не допускаются. При использовании относительных путей максимальная длина полного имени файла определена константой MAX_PATH (260 символов).

UNIX В UNIX и UNIX-подобных системах полный путь состоит из слеша (/), обозначающего корневой каталог, после которого через слеши перечисляются подкаталоги, в конце пишется имя файла. Пример:

/usr/local/bin/gcc

Пути, начинающиеся не с косой черты, считаются относительными и отсчитываются относительно рабочего каталога. Пример:

../mc при нахождении в каталоге /etc/apache2 эквивалентно /etc/mc.

Особое значение у путей, которые начинаются с тильды (~). Тильда обозначает домашний каталог текущего или указанного пользователя. Пример:

~/Desktop для пользователя user во многих системах и случаях эквивалентно /home/user/DesktopДля каталога каждого пользователя в современных ОС может быть настроен произвольный путь. ~admin/passwords для любого пользователя равносильно /home/admin/passwords ~root/test для любого пользователя — то же самое, что и /root/test, потому что суперпользователь (root) имеет особый домашний каталог.

Запрещённые символы Многие операционные системы запрещают использование некоторых служебных символов.

Запрещённые символы Windows (в различных версиях): \ — разделитель подкаталогов / — разделитель ключей командного интерпретатора : — отделяет букву диска или имя альтернативного потока данных * — заменяющий символ (маска «любое количество любых символов») ? — заменяющий символ (маска «один любой символ») " — используется для указания путей, содержащих пробелы < — перенаправление ввода > — перенаправление вывода | — обозначает конвейер + — (в различных версиях) конкатенация

Частично запрещённые символы Windows: пробел — не допускается в конце имени файла; . — не допускается в конце имени файла, в имени каталогов все последние точки игнорируются.

Символы, вызывающие проблемы в широко распространённых компонентах: % — в Windows используется для подстановки переменных окружения в интерпретаторе команд, вызывает проблемы при открытии файла через стандартный диалог открытия файла; ! — в Windows используется для подстановки переменных окружения в интерпретаторе команд, в bash используется для доступа к историиВызывает проблему в команде вида echo "$(ls 'Привет мир!')". Рабочий вариант команды: echo "$(ls 'Привет мир'\!)".; @ — в интерпретаторах команд вызывает срабатывание функций, предназначенных для почты.

В именах файлов UNIX и некоторых UNIX-подобных ОС запрещен слеш (/) — разделитель подкаталогов — и символ конца C-строки (\0). Перечисленные выше символы (кроме слеша) использовать можно, но из соображений совместимости их лучше избегать.

Расширение имени файла

Расширение имени файла (, часто говорят просто расширение файла или расширение) — последовательность символов, добавляемых к имени файла и предназначенных для идентификации типа (формата) а. Это один из распространённых способов, с помощью которых пользователь или программное обеспечение компьютера может определить тип данных, хранящихся в файле. Расширение отделяется от основной части имени файла последней точкой. Иногда могут использоваться несколько расширений, следующих друг за другом, например, «.tar.gz».

ОС или менеджер файлов могут устанавливать соответствия между расширениями файлов и приложениями. Когда пользователь открывает файл с зарегистрированным расширением, автоматически запускается соответствующая этому расширению программа. Некоторые расширения могут показывать, что файл является исполняемым (в Windows).

См. также inode

Примечания

Литература

Категория:Файловые системы