Что означают символы и в имени файла

Обновлено: 08.07.2024

Файл – поименованная совокупность данных, хранимая во внешней памяти и имеющая определенную структуру.

В файлах хранятся:

  • документы;
  • программы;
  • рисунки;
  • песни;
  • фильмы;
  • и т.д.

Свойства файла

1.) Имя

В различных ОС существуют определенные ограничения на длину имени и расширения имени файла. В общем случае имя файла состоит из собственно имени и расширения (extension).Типы имен файлов: формат 8.3 (DOS) и длинные имена файлов (Windows).

1. Формат 8.3

Этот формат задает ограничение на длину имени файла: собственно имя может состоять не более чем из 8 символов (от 1 до 8), расширение может состоять не более чем из трех символов (от 1 до 3). Имя и расширение могут содержать (допустимые символы): прописные и строчные латинские буквы (прописные и строчные латинские буквы являются эквивалентными, т.к. DOS переводит все строчные буквы в соответствующие прописные; на диске имя файла хранится в версии, записанной прописными буквами); (Это служебные символы операционной системы и испотльзовать их в именах файлов не рекомендуется ОС)

2. Длинные имена файлов (Windows).

Маска (шаблон) имени файла (Wildcards)

используется для работы с группой файлов из одного каталога.

Для создания маски используются символы: * и ?.

Маска может быть написана для файлов, имена которых имеют общие (одинаковые) символы.

2.) Расширение

Расширение имени файла служит для идентификации типа файла. Тип (указывает тип) -наименование программы, в которой файл был создан.


3) Размер

Измеряется в байтах, Кб, Мб.

4) Дата и время

создания или последней модификации

5) Атрибуты

Для каждого файла соответствующая ему запись в каталоге (элемент каталога) содержит атрибуты файла.

R (read-only) – только для чтения; предохраняет файл от изменений: для изменения или удаления файла с этим атрибутом требуется предварительно снять данный атрибут (например, файлы CD имеют этот атрибут).

A (archive) – архивный; автоматически устанавливается при создании файла. Он сбрасывается программами резервного копирования для обозначения того, что копия файла помещена в архив. Т.о. наличие этого атрибута указывает на то, что для этого файла не было сделано резервной копии.

H (hidden) – скрытый (невидимый); используется некоторыми системными файлами.

Полное имя файла

Полное имя файла состоит из пути к каталогу, в котором находится файл, и имени файла, разделенных \, перед которым может стоять обозначение дисковода. Если дисковод не указан, подразумевается текущий дисковод. Если путь не указан, подразумевается текущий каталог. Текущий дисковод – дисковод, с которым работает пользователь. Путь к файлу – последовательность из имен каталогов или символов . разделенных \. Этот путь задает маршрут от текущего каталога или от корневого каталога диска к тому каталогу, в котором находится нужный файл.


Пример полного имени файла



Файловые менеджеры

В ОС Windows стандартным файловым менеджером является программа «Проводник», который реализует оконный интерфейс и технологию работы с помощью мыши.


Широко известны ФМ – Norton Commander и FAR, использующие две панели для отображения файлов. Для быстрой работы с данными ФМ необходимо выучить комбинации функциональных клавиш.


файловый менеждер FAR

Некоторые ФМ, например, Total Commander используют оконный интерфейс, панельное отображение файлов и поддерживает технологию работы с мышью.

типы файлов

Понятие файла является одним из базовых понятий компьютерной грамотности.

Файл – это поименованная область памяти на компьютерном носителе.

Другими словами, файлом называется набор данных на компьютерном носителе (жёсткий диск, флешка, карта памяти в смартфоне, CD и DVD диск и т.п.), у которого есть свое имя (имя файла).

Имя файла

Какие можно использовать символы в имени файла? В именах файлов рекомендуется использовать русские и латинские буквы, цифры, пробелы и знаки препинания.

Однако имя файла не следует начинать с точки, а также использовать в имени квадратные [ ] или фигурные < >скобки. Недопустимыми для имен файлов являются следующие служебные символы / \ | : * ? “ < >

Существует ли максимальная длина имени файла? Длина имени файла не должна превышать 255 символов. На самом деле, обычно хватает 20-25 символов.

Операционная система Windows не делает различий между строчными и прописными буквами для имен файлов. Это означает, что не получится хранить в одной и той же папке файлы, имена которых различаются только регистром. Например, два имени файла «Название.doc» и «НАЗВАНИЕ.doc» для Windows будет одним именем для одного и того же файла.

Что такое тип файла или формат файла

Как Вы считаете, могут ли быть в одной папке несколько файлов с одинаковым именем PRIMER? Это возможно при условии, что у имени PRIMER будут разные расширения.

PRIMER.doc(x) – типом файла является документ Word (или файл в формате Ворда),

PRIMER.bmp – типом файла является рисунок,

PRIMER.avi – типом файла является видеофайл,

PRIMER.wav – типом файла является аудиофайл.

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

Если проводить аналогию с именами людей, то имя файла совпадает с именем человека, а расширение имени файла – с фамилией человека. Соответственно, PRIMER.doc и PRIMER.bmp по этой аналогии то же самое, что Иван Петров и Иван Сидоров.

Файлы с именами PRIMER.doc и VARIANT.docx – это два брата из одного семейства документов (с одинаковым расширением .docx). Аналогично, например, Иван Петров и Федор Петров – братья из одной семьи Петровых.

Тип файла (то есть, расширение имени файла) – это часть имени файла, которая начинается с точки, после которой стоят несколько символов.

Распространены типы (расширения), состоящие из трех букв – .doc, .txt, .bmp, .jpg и.т.д. Регистр не имеет значения, поэтому .doc и .DOC – это одно и то же расширение документа, один тип файла.

Расширение является необязательным атрибутом в имени файла, то есть его может и не быть. В таком случае в конце имени файла точка, как правило, не ставится.

Зачем нужен тип файла

Расширение в имени файла хоть и не обязательно, но все-таки желательно, так как оно указывает операционной системе Windows на тип файла. Проще говоря, тип файла является подсказкой для Windows, с помощью какой программы системе Windows следует этот файл открывать.

Например, расширение .docx указывает, что файл следует открывать с помощью редактора Word, а расширение .cdr – на то, что файл открывается графической программой Corel Draw.

Есть зарезервированные (служебные) имена, которые нельзя использовать в качестве имен файлов, так как они являются именами устройств:

COM1-COM4 – устройства, присоединяемые к последовательным портам 1-4,

AUX – то же, что COM1,

LPT1-LPT4 – устройства, присоединяемые к параллельным портам 1-4 (как правило, принтеры),

CON (consol) – при вводе – клавиатура, при выводе – экран,

NUL – «пустое» устройство.

Запрещенные символы в именах файлов

Приведу примеры имен файлов, которые являются недопустимыми:

5<>8/7.txt – символы «<», «>» и «/» запрещены,

В чем вопрос? – символ «?» запрещен,

PRN.bmp – здесь PRN зарезервированное имя.

Что такое значок файла или иконка файла

В зависимости от типа файла на экран Windows выводятся различные значки (иконки). Первый пример касается значка текстового редактора:


Второй пример относится к архивному файлу. Это тот файл, который был обработан с помощью программы-архиватора WinRAR (сокращенно RAR):


Почему я не вижу типы файлов в своем Проводнике?

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

Выбор типа файла при сохранении файла

При сохранении файла достаточно написать его имя и выбрать тип файла из имеющегося списка. Выбранное расширение автоматически добавится к имени файла. Например, на рисунке ниже к имени файла программа сама добавит расширение .jpg. В результате Windows запомнит этот файл с именем «рисунок в paint.jpg».

выбор типа файла при его сохранении

Во избежание недоразумений при сохранении файлов всегда обращайте внимание на строку «тип файла», если она есть. Ведь тип файла является для Windows подсказкой, с помощью которого система определяет, какой именно программой этот файл можно открыть.

Тесная связь между типом файла и программой, открывающей такой тип

Если Вы скачали из Интернета файл, например, с расширением .rar, но на вашем компьютере не установлена программа-архиватор для работы с такими «сжатыми, заархивированными» файлами, то не удивляйтесь, что файл не открывается. Другими словами, надо отдавать себе отчет, что если открывать файлы, например, в видео-формате, то на компьютере должна быть в наличии соответствующая программа для работы с таким форматом.

Можно провести аналогию между файлом (точнее, между типом файла) и программой, работающей с таким типом файлов. Файл – замок, а программа, открывающая этот файл, – ключик к замочку. Как известно, замок без ключика не открывается, да и ключик без замка особой ценности не представляет.

Упражнения по компьютерной грамотности:

1) Попробуйте на Рабочем столе создать две папки с именами: PRIMER и primer.

Для этого на Рабочем столе кликните правой кнопкой мыши на свободном месте, а в появившемся окне – по опции «Создать» и, наконец, клик по опции «Папку». Вместо слов «Новая папка» введите «PRIMER». Затем все это повторяете для создания второй папки с именем «primer». Windows дал Вам «добро» на открытие второй папки?

2) Зайдите, например, в редактор Word и попробуйте сохранить документ с именем PRN. Windows разрешил такое имя для нового файла?

Если у Вас есть вопросы по этой теме, напишите их ниже, в комментариях, я отвечу.

Нашли ошибку? Выделите фрагмент текста и нажмите Ctrl+Enter.

Получайте актуальные статьи по компьютерной грамотности прямо на ваш почтовый ящик.
Уже более 3.000 подписчиков

Важно: необходимо подтвердить свою подписку! В своей почте откройте письмо для активации и кликните по указанной там ссылке. Если письма нет, проверьте папку Спам.

Добавить комментарий Отменить ответ

Комментарии: 43 к “Имена и типы файлов”

Автору респект
Самая толковая статья из всего опубликованного на эту тему.

Спасибо за уроки! Я начинающий. У меня есть проблема, кажется созвучна с уроком. Была программа outlook, в неё заносил знакомых, друзей и т.д. Компьютер стал зависать, внуки переписали всё на флешку, затем вновь записали на новый компьютер ( windows 8.1) OUTLOOK не открывается, нет не телефонов, адресов друзей и т.д. Как открыть?

Хороший совет спасибо!

Спасибо за очень интересный и важный урок Ахат.

Cпасибо большое за совет.Уже создала разные папки, заодно навела порядок-разложила фото так, чтобы их быстро можно было найти. С уважением-Тамара.

Здравствуйте, Надежда!Я скачала фото на ноутбук не с моего телефона, и у скачанных фото номера совпали с ранее скачанными фото с моего телефона (Это я потом поняла).Мои фото исчезли.Можно ли восстановить мои прежние фото и как мне избежать такой ошибки в дальнейшем? С уважением-Тамара.

В моем случае не помогает. Надо счто-то другое.

Откройте в верхнем меню Вид. Поставьте галочку напротив Плитка.

Да все так и и есть. Только видеофайлы показываются в иде значков,а я хотел, чтобы как раньше в виде кадров из них. Может какую прогу надо? А менять значки крупные на мелкие смысла нет.

Надежда! У меня W-7.Раньше все видеофалы имели значки в виде начальных кадров содержимого файла,т.е. типа как-будто видеопленка и кадр из этого файла. Что-то я кликнул не то и вместо этого отбражения файла стало отбражение файла в виде значка программы, открывающей файл. А как мне вернуть предыдущее отображение файла? Может подскажете. Спасибо!

Надежда, благодарю Вас за исчерпывающую информацию по моим вопросам. С вашим блогом надо дружить постоянно. Это только начало, а еще сколько надо выучить! Век живи-век учись!

Спасибо за урок, хоть я основное по теме знаю, но добывать информацию мне пришлось методом многих проб и ошибок долгое время. Ваши уроки ускоряют работу на компьютере. Я рада, что получаю компьютерную грамотность с вами, Надежда! Правда, с паролями у меня постоянная проблема,так и не восстановила пароль в Яндексе. Есть и вопрос: есть ли какие правила организации файлов в компьютере, чтобы все можно было разложить по полочкам и найти быстро. Сколько лет храниться инфо в компьютерах и кто ответственный за чистку от хлама в ПК и на диске сервера компании: пользователь или компьютерщик (в корпоративных компьютерах)?. Как работает компьютер, если в нем хранится много лишнего?




Но если включить отображение скрытых файлов, то появляется ещё один файл hosts:


Мы видим два файла с одинаковым названием в одной папке. Но ведь одна директория не может содержать двух файлов с одинаковым названием. Если скопировать имена файлов в Notepad, сохранить как текст Unicode и открыть в Hex-редакторе, то появится следующая картина (верхняя строчка для первого файла hosts, нижняя — для второго):


В Unicode (UTF-16) символ 0x006F выглядит так же, как 0x6F в ASCII, где тот соответствует букве «o». Но что такое 0x043E в Unicode? Это можно посмотреть в таблице Unicode, вот её фрагмент.


В таблице 0x043E соответствует кириллическому символу, который выглядит так же, как английское «o». То есть настоящим файлом hosts на самом деле является скрытый файл, именно он используется операционной системой. Если открыть этот файл, то сразу видно отличие от фальшивого, это две строчки внизу на несколько экранов от начала:


Это уже не первый раз, когда мы обнаружили использование хакерами кодировки Unicode для вредоносных целей. В августе 2010 года один китайский хакер продемонстрировал приём, как использовать управляющие символы Unicode, чтобы убедить пользователей в безопасности файла. С помощью управляющего символа 0x202E (RLO) можно изменить порядок символов при отображении названия файла в Windows Explorer.

Например, вот потенциально опасный файл picgpj.exe


Если перед частью названия «gpj.exe» вставить управляющий символ, то порядок символов меняется и имя файла отображается в Проводнике уже иначе:


Хакеры обычно используют картинку в качестве иконки для этого файла. Неосторожный пользователь может принять её за фотографию и открыть двойным щелчком, тем самым запуская программу. Очевидно, этот приём бесполезен для программ с поддержкой Юникода, но пользователи не всегда сами могут распознать опасность.


A имя файла или имя файла - имя, используемое для однозначной идентификации компьютерного файла , хранящегося в файловая система . Различные файловые системы накладывают разные ограничения на длину файлов и допустимые символы в именах файлов.

Имя файла может включать один или несколько из следующих компонентов:

Компоненты, необходимые для идентификации файла, различаются в разных операционных системах, как и синтаксис и формат допустимого имени файла.

Содержание

История

Примерно в это же время появилась точка (точка или точка) в качестве разделителя расширений имени файла, и ограничение до трех буквенных расширений могло происходить из-за ограничений кодировки символов 16-бит RAD50 .

Традиционно большинство операционных систем поддерживали имена файлов только с верхним регистром буквенно-цифровые символы , но с течением времени количество разрешенных символов увеличивалось. Это приводило к проблемам совместимости при перемещении файлов между разными файловыми системами.

В 1985 году RFC 959 официально определил путь как строку символов, которая должна быть введена в файловую систему пользователем. для идентификации файла.

Перенос Unicode

Одной из проблем был переход на Unicode. Для этой цели несколько компаний-разработчиков программного обеспечения предоставили программное обеспечение для переноса имен файлов в новую кодировку Unicode.

  • Microsoft предоставила прозрачную для пользователя миграцию в рамках технологии vfat
  • Apple предоставила «Утилиту восстановления кодировки имен файлов v1.0».
  • Сообщество Linux предоставило «convmv ”.

Mac OS X 10.3 ознаменовала принятие Apple декомпозиции символов Unicode 3.2, заменившей использовавшуюся ранее декомпозицию Unicode 2.1. Это изменение вызвало проблемы у разработчиков, пишущих программное обеспечение для Mac OS X.

Ссылки: абсолютные и относительные

Абсолютные ссылки включают все уровни каталогов. В некоторых системах ссылка на имя файла, которая не включает полный путь к каталогу, по умолчанию указывает на текущий рабочий каталог . Это относительная ссылка. Одним из преимуществ использования относительной ссылки в файлах конфигурации программы или сценариях является то, что разные экземпляры сценария или программы могут использовать разные файлы.

Таким образом абсолютный или относительный путь состоит из последовательности имён файлов.

Количество имен на файл

Unix-подобные файловые системы позволяют файлу иметь более одного имени; в традиционных файловых системах в стиле Unix это имена жестких ссылок на индексный дескриптор файла или его эквивалент. Windows поддерживает жесткие ссылки в файловых системах NTFS и предоставляет команду fsutil в Windows XP и mklink в более поздних версиях для их создания. Жесткие ссылки отличаются от ярлыков Windows , классических Mac OS / ​​macOS псевдонимов или символических ссылок . Введение LFN с VFAT позволило использовать псевдонимы файлов. Например, longfi

1. . с максимум восемью плюс тремя символами был псевдонимом имени файла «длинное имя файла. . » как способ соответствия 8.3 ограничения для старых программ.

Это свойство использовалось алгоритмом команды перемещения, который сначала создает второе имя файла, а затем удаляет только первое имя файла.

Другие файловые системы, по замыслу, предоставляют только одно имя файла для каждого файла, что гарантирует, что изменение файла с одним именем файла не изменит файл с другим именем.

Ограничения длины

Особая проблема файловых систем, которые хранят информацию во вложенных каталогах, заключается в том, что можно создать файл с полным путем, превышающим ограничения реализации, поскольку проверка длины может применяться только к отдельным частям имени, а не к все имя. Многие приложения Windows ограничены значением MAX_PATH , равным 260, но имена файлов Windows могут легко превысить этот предел [1] .

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

Многие файловые системы, включая FAT , NTFS и VMS разрешают расширение имени файла , которое состоит из одного или нескольких символов, следующих за последней точкой в ​​имени файла, разделение имени файла на две части: базовое имя или основу и расширение или суффикс, используемый некоторыми приложениями для обозначения типа файла . Несколько выходных файлов, созданных приложением, используют одно и то же базовое имя и разные расширения. Например, компилятор может использовать расширение FOR для исходного входного файла (для кода Fortran), OBJ для вывода объекта и LST для листинга. Хотя есть некоторые общие расширения, они произвольны, и другое приложение может использовать REL и RPT . В файловых системах, которые не разделяют расширения, файлы часто имеют более длинные расширения, такие как html .

Совместимость кодирования

Не существует общего стандарта кодирования для имен файлов.

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

Взаимодействие индикации кодирования

Традиционно, имена файлов допускали использование любых символов в именах файлов, если они были безопасными для файловой системы. Хотя это позволяло использовать любую кодировку и, таким образом, позволяло представлять любой локальный текст в любой локальной системе, это вызывало множество проблем совместимости.

Имя файла может быть сохранено с использованием разных байтовых строк в разных системах внутри одной страны, например, если в одной из них используется японская кодировка Shift JIS и японская кодировка EUC . Преобразование было невозможно, так как большинство систем не отображали описание кодировки, используемой для имени файла, как часть расширенной информации о файле. Это заставляло дорогостоящее угадывать кодировку имени файла при каждом доступе к файлу.

Решением было принять Unicode в качестве кодировки для имен файлов.

Однако в классической Mac OS кодировка имени файла хранилась с атрибутами имени файла.

Совместимость с Unicode

Стандарт Unicode решает проблему определения кодировки.

Тем не менее, остаются некоторые ограниченные проблемы совместимости, такие как нормализация (эквивалентность) или используемая версия Unicode. Например, UDF ограничен Unicode 2.0; В файловой системе macOS HFS + применяется нормализация NFD Unicode и, возможно, учитывается регистр (по умолчанию регистр не учитывается). Максимальная длина имени файла нестандартна и может зависеть от размера единицы кода. Хотя это серьезная проблема, в большинстве случаев она ограничена.

В Linux это означает, что имени файла недостаточно для открытия файла: кроме того, точное байтовое представление имени файла на устройстве хранения необходим. Это может быть решено на уровне приложения с помощью некоторых сложных вызовов нормализации.

Проблема эквивалентности Unicode известна как «конфликт нормализованных имен». Решением является ненормализующая осведомленность о композиции Unicode, используемая в технических сообществах Subversion и Apache. Это решение не нормализует пути в репозитории. Пути нормализованы только для сравнения. Тем не менее, некоторые сообщества запатентовали эту стратегию, запрещая ее использование другими сообществами.

Перспективы

Чтобы ограничить проблемы взаимодействия, некоторые идеи, описанные Sun, заключаются в следующем:

  • использовать одну кодировку Unicode ( например, UTF-8)
  • выполнять прозрачное преобразование кода для имен файлов
  • не хранить нормализованные имена файлов
  • проверять каноническую эквивалентность между именами файлов, чтобы избежать двух канонически эквивалентных имен файлов в одном и том же каталог.

Эти соображения создают ограничение, не позволяющее переключиться на будущую кодировку, отличную от UTF-8.

Уникальность

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

Подход к уникальности может различаться как в зависимости от регистра, так и в форме нормализации Unicode , например NFC, NFD. Это означает, что могут быть созданы два отдельных файла с одним и тем же текстовым именем файла и разной байтовой реализацией имени файла, например L "\ x00C0.txt" (UTF-16, NFC) (латинская заглавная A с могилой) и L "\ x0041 \ x0300.txt "(UTF-16, NFD) (латинская заглавная A, объединение могил).

Сохранение регистра букв

Некоторые файловые системы, такие как FAT , хранят имена файлов в верхнем регистре, независимо от того, какой регистр букв использовался для их создания. Например, файл, созданный с именем «MyName.Txt» или «myname.txt», будет сохранен с именем «MYNAME.TXT». Для обозначения одного и того же файла можно использовать любые вариации верхнего и нижнего регистра. Такие файловые системы называются без учета регистра и не с сохранением регистра . Некоторые файловые системы вообще запрещают использование строчных букв в именах файлов.

Некоторые файловые системы хранят имена файлов в том виде, в котором они были изначально созданы; они называются с сохранением регистра или с сохранением регистра . Такая файловая система может быть с учетом регистра или без учета регистра . Если учитывается регистр, то «MyName.Txt» и «myname.txt» могут относиться к двум разным файлам в одном каталоге, и при ссылке на каждый файл необходимо указывать тот же регистр, которым он назван. С другой стороны, в файловой системе без учета регистра и с сохранением регистра только одно из «MyName.Txt», «myname.txt» и «Myname.TXT» может быть именем файла в заданном каталоге в заданное время, и на файл с одним из этих имен можно ссылаться, используя любую заглавную букву имени.

С самого начала Unix и производные от нее системы сохраняли регистр. Однако не все Unix-подобные файловые системы чувствительны к регистру; по умолчанию HFS + в macOS не чувствителен к регистру, а серверы SMB обычно обеспечивают нечувствительность к регистру (даже если базовая файловая система чувствительна к регистру, например, Samba в большинстве Unix-подобных систем), а клиентские файловые системы SMB обеспечивают нечувствительность к регистру. Файловая система чувствительность к регистру представляет собой серьезную проблему для программного обеспечения, такого как Samba и Wine , которое должно эффективно взаимодействовать с обеими системами, которые обрабатывают файлы в верхнем и нижнем регистре как разные, и с системами, которые обрабатывают их как то же самое.

Зарезервированные символы и слова

Файловые системы не всегда предоставляют один и тот же набор символов для создания имени файла. До того, как Unicode стал стандартом де-факто, файловые системы в основном использовали набор символов, зависящий от локали. Напротив, некоторые новые системы допускают, чтобы имя файла состояло практически из любого символа из репертуара Unicode и даже некоторых последовательностей байтов, отличных от Unicode. Ограничения могут быть наложены файловой системой, операционной системой, приложением или требованиями к взаимодействию с другими системами.

Многие утилиты файловой системы запрещают управляющие символы появляться в именах файлов. В Unix-подобных файловых системах запрещены нулевой символ и разделитель путей / .

В Windows

Утилиты файловой системы и соглашения об именах в Windows запрещают использование определенных символов в именах файлов:

пять \ и \ шесть \ (пример экранирования)
'пять и шесть или "пять и шесть (примеры цитирования)

Символ 0xE5 не разрешался в качестве первой буквы в имени файла в 86-DOS и MS-DOS / PC DOS 1.x- 2.x, но может использоваться в более поздних версиях.

В утилитах Windows пробел и точка не допускаются в качестве последнего символа имени файла. Точка допускается в качестве первого символа, но в некоторых Windows приложения, такие как Проводник Windows , запрещают создание или переименование таких файлов (несмотря на то, что это соглашение используется в Unix-подобных системах для описания скрытых файлов и каталогов). Обходные пути включают добавление точки, когда переименование файла (который впоследствии автоматически удаляется) с использованием альтернативных файловых менеджеров , создание файла с помощью командной строки или сохранение файла с желаемым именем из приложения.

Некоторые файловые системы в данной операционной системе tem (особенно файловые системы, изначально реализованные в других операционных системах) и определенные приложения в этой операционной системе могут применять дополнительные ограничения и интерпретации. Подробнее об ограничениях см. сравнение файловых систем .

В Unix-подобных системах, DOS и Windows имена файлов "." и ".." имеют особое значение (текущий и родительский каталог соответственно). Windows 95/98 / ME также использует имена типа «. », «. » и т. Д. Для обозначения каталогов прародителей или прародителей. Все версии Windows запрещают создание имен файлов, состоящих только из точек, хотя имена, состоящие из трех точек («. ») или более, допустимы в Unix.

Кроме того, в утилитах Windows и DOS некоторые слова также зарезервированы и не могут использоваться в качестве имен файлов. Например, DOSфайлы устройств :

Системы с этими ограничениями вызывают несовместимость с некоторыми другими файловыми системами. Например, Windows не сможет обработать или создать отчеты об ошибках для этих допустимых имен файлов UNIX: aux.c, q "uote" s.txt или NUL.txt.

Имена файлов NTFS, которые используются внутри, включают:

Сравнение ограничений имени файла

Запрещает использование символов в диапазоне 1-31 (0x01-0x1F) и символов "* /: ? \ |, Если имя не помечено как находящееся в пространстве имен Posix. NTFS разрешает каждый компонент пути (каталог или имя файла) должно состоять из 255 символов.


Имя файла или имя файла - это имя, используемое для однозначной идентификации компьютерного файла в структуре каталогов . Разные файловые системы накладывают разные ограничения на длину файлов и допустимые символы в именах файлов.

Имя файла может включать один или несколько из этих компонентов:

Компоненты, необходимые для идентификации файла, различаются в зависимости от операционной системы, как и синтаксис и формат допустимого имени файла.

СОДЕРЖАНИЕ

История

Точка (период или полная остановка) в качестве разделителя расширения имени файла, а также ограничение на три буквы расширение, появилась в 1970 - х годах. Они могли исходить из 16-битных ограничений кодировки символов RAD50 .

Традиционно большинство операционных систем поддерживало имена файлов только с прописными буквенно-цифровыми символами, но со временем количество допустимых символов увеличивалось. Это приводило к проблемам совместимости при перемещении файлов между разными файловыми системами.

В 1985 году RFC 959 официально определил имя пути как строку символов, которая должна быть введена в файловую систему пользователем для идентификации файла.

Примерно в 1995 году VFAT , расширение файловой системы MS-DOS FAT, было представлено в Windows 95 и Windows NT . Это позволило использовать длинные имена файлов Unicode (LFN) в смешанном регистре в дополнение к классическим именам «8.3».

Ссылки: абсолютные vs относительные

Абсолютная ссылка включает все уровни каталогов. В некоторых системах ссылка на имя файла, которая не включает полный путь к каталогу, по умолчанию указывает на текущий рабочий каталог . Это относительная ссылка. Одним из преимуществ использования относительной ссылки в файлах конфигурации программы или сценариях является то, что разные экземпляры сценария или программы могут использовать разные файлы.

Таким образом, абсолютный или относительный путь состоит из последовательности имен файлов.

Количество имен в файле

Unix-подобные файловые системы позволяют файлу иметь более одного имени; в традиционных файловых системах в стиле Unix имена являются жесткими ссылками на индексный дескриптор файла или его эквивалент. Windows поддерживает жесткие ссылки в файловых системах NTFS и предоставляет команды для их создания fsutil в Windows XP и mklink более поздних версиях. Жесткие ссылки отличаются от ярлыков Windows , классических псевдонимов Mac OS / macOS или символических ссылок . Введение LFN с VFAT позволило использовать псевдонимы файлов. Например, в псевдониме имени файла было максимум восемь плюс три символа, чтобы соответствовать ограничениям 8.3 для старых программ. longfi

1. long file name.

Это свойство использовалось алгоритмом команды перемещения, который сначала создает второе имя файла, а затем удаляет только первое имя файла.

Другие файловые системы, по замыслу, предоставляют только одно имя файла для каждого файла, что гарантирует, что изменение файла с одним именем файла не повлияет на файл с другим именем.

Ограничения по длине

Особая проблема с файловыми системами, которые хранят информацию во вложенных каталогах, заключается в том, что можно создать файл с полным путем, превышающим ограничения реализации, поскольку проверка длины может применяться только к отдельным частям имени, а не ко всему имени. Многие приложения Windows ограничены MAX_PATH значением 260, но имена файлов Windows могут легко превысить это ограничение [2] . В Windows 10 версии 1607 ограничения MAX_PATH были сняты.

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

Многие файловые системы, включая системы FAT , NTFS и VMS , рассматривают как расширение имени файла часть имени файла, которая состоит из одного или нескольких символов, следующих за последней точкой в ​​имени файла, разделяя имя файла на две части: базовое имя или основу а также расширение или суффикс, используемый некоторыми приложениями для обозначения типа файла . Несколько выходных файлов, созданных приложением, используют одно и то же базовое имя и разные расширения. Например, компилятор может использовать расширение FOR для исходного входного файла (для кода Fortran), OBJ для вывода объекта и LST для листинга. Хотя есть несколько распространенных расширений, они произвольны, и другое приложение может использовать REL и RPT . Расширения были ограничены, по крайней мере исторически в некоторых системах, длиной до 3 символов, но в целом могут иметь любую длину, например html .

Совместимость кодирования

Не существует общего стандарта кодировки для имен файлов.

Имена файлов должны обмениваться между программными средами для сетевой передачи файлов, хранения файловой системы, программного обеспечения для резервного копирования и синхронизации файлов, управления конфигурацией, сжатия и архивирования данных и т. Д. Таким образом, очень важно не потерять информацию об именах файлов между приложениями. Это привело к широкому распространению Unicode в качестве стандарта для кодирования имен файлов, хотя устаревшее программное обеспечение могло не поддерживать Unicode.

Совместимость индикации кодирования

Традиционно имена файлов допускали использование любых символов в именах файлов, если они были безопасными для файловой системы. Хотя это позволяло использовать любую кодировку и, таким образом, позволяло представлять любой локальный текст в любой локальной системе, это вызывало множество проблем с совместимостью.

Имя файла может быть сохранено с использованием разных байтовых строк в разных системах в пределах одной страны, например, если в одной из них используется японская кодировка Shift JIS и другая японская кодировка EUC . Преобразование было невозможно, поскольку большинство систем не отображало описание кодировки, используемой для имени файла, как часть расширенной информации о файле. Это заставляло дорогостоящее угадывать кодировку имени файла при каждом доступе к файлу.

Решением было принять Unicode в качестве кодировки имен файлов.

Однако в классической Mac OS кодировка имени файла сохранялась с атрибутами имени файла.

Совместимость Unicode

Стандарт Unicode решает проблему определения кодировки.

Тем не менее, остаются некоторые ограниченные проблемы совместимости, такие как нормализация (эквивалентность) или используемая версия Unicode. Например, UDF ограничен Unicode 2.0; В файловой системе MacOS HFS + применяется нормализация NFD Unicode и, при необходимости, учитывается регистр (по умолчанию регистр не учитывается). Максимальная длина имени файла нестандартна и может зависеть от размера единицы кода. Хотя это серьезная проблема, в большинстве случаев она носит ограниченный характер.

В Linux это означает, что имени файла недостаточно для открытия файла: кроме того, требуется точное байтовое представление имени файла на устройстве хранения. Это можно решить на уровне приложения с помощью некоторых сложных вызовов нормализации.

Проблема эквивалентности Unicode известна как «коллизия нормализованных имен». Решением является ненормализующая осведомленность о композиции Unicode, используемая в технических сообществах Subversion и Apache. Это решение не нормализует пути в репозитории. Пути нормализованы только для сравнения. Тем не менее, некоторые сообщества запатентовали эту стратегию, запрещая ее использование другими сообществами.

Перспективы

Чтобы ограничить проблемы взаимодействия, некоторые идеи, описанные Sun, заключаются в следующем:

  • используйте одну кодировку Unicode (например, UTF-8)
  • делать прозрачные преобразования кода для имен файлов
  • не хранить нормализованные имена файлов
  • проверьте каноническую эквивалентность между именами файлов, чтобы избежать двух канонически эквивалентных имен файлов в одном каталоге.

Эти соображения создают ограничение, не позволяющее переключиться на будущую кодировку, отличную от UTF-8.

Миграция Unicode

Одна из проблем заключалась в переходе на Unicode. С этой целью несколько компаний-разработчиков программного обеспечения предоставили программное обеспечение для перевода имен файлов в новую кодировку Unicode.

  • Microsoft предоставила прозрачную для пользователя миграцию в рамках технологии VFAT.
  • Apple предоставила «Утилиту восстановления кодировки имен файлов v1.0».
  • Сообщество Linux предоставило « convmv ».

Mac OS X 10.3 ознаменовала принятие Apple декомпозиции символов Unicode 3.2, которая заменила использовавшуюся ранее декомпозицию Unicode 2.1. Это изменение вызвало проблемы у разработчиков, пишущих программное обеспечение для Mac OS X.

Уникальность

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

Подход уникальности может отличаться как от чувствительности к регистру, так и от формы нормализации Unicode, такой как NFC, NFD. Это означает, что могут быть созданы два отдельных файла с одним и тем же текстовым именем файла и разной байтовой реализацией имени файла, например L "\ x00C0.txt" (UTF-16, NFC) (латинская заглавная A с могилой) и L "\ x0041 \ x0300.txt "(UTF-16, NFD) (латинская заглавная A, объединение могил).

Сохранение регистра букв

Некоторые файловые системы, такие как FAT , хранят имена файлов в верхнем регистре независимо от регистра букв, использованных для их создания. Например, файл, созданный с именем «MyName.Txt» или «myname.txt», будет сохранен с именем «MYNAME.TXT». Для обозначения одного и того же файла можно использовать любые вариации верхнего и нижнего регистра. Такие файловые системы называются нечувствительными к регистру и не сохраняют регистр . Некоторые файловые системы вообще запрещают использование строчных букв в именах файлов.

Некоторые файловые системы хранят имена файлов в том виде, в котором они были изначально созданы; они называются « сохраняющими дело» или « сохраняющими дело» . Такая файловая система может быть чувствительной к регистру или нечувствительной к регистру . Если учитывается регистр, то «MyName.Txt» и «myname.txt» могут относиться к двум разным файлам в одном и том же каталоге, и для ссылки на каждый файл необходимо использовать заглавные буквы, которыми он назван. С другой стороны, в файловой системе без учета регистра и сохранении регистра только одно из «MyName.Txt», «myname.txt» и «Myname.TXT» может быть именем файла в заданном каталоге в заданное время, и на файл с одним из этих имен можно ссылаться, используя любую заглавную букву имени.

С самого начала Unix и производные от нее системы сохраняли регистр. Однако не все Unix-подобные файловые системы чувствительны к регистру; по умолчанию HFS + в macOS нечувствителен к регистру, а серверы SMB обычно обеспечивают нечувствительность к регистру (даже если базовая файловая система чувствительна к регистру, например Samba в большинстве Unix-подобных систем), а клиентские файловые системы SMB обеспечивают регистр - бесчувственное поведение. Чувствительность к регистру файловой системы является серьезной проблемой для таких программ, как Samba и Wine , которые должны эффективно взаимодействовать с обеими системами, которые обрабатывают файлы в верхнем и нижнем регистре как разные, и с системами, которые обрабатывают их одинаково.

Зарезервированные символы и слова

«Зарезервированные символы» перенаправляются сюда. О символах, которые нельзя использовать в заголовках страниц в Википедии, см. Википедия: Соглашения об именах (технические ограничения) § Запрещенные символы .

Файловые системы не всегда предоставляют одинаковый набор символов для создания имени файла. До того, как Unicode стал стандартом де-факто, файловые системы в основном использовали набор символов, зависящий от локали. Напротив, некоторые новые системы допускают, чтобы имя файла состояло практически из любого символа репертуара Unicode и даже некоторых последовательностей байтов, отличных от Unicode. Ограничения могут быть наложены файловой системой, операционной системой, приложением или требованиями к взаимодействию с другими системами.

Многие утилиты файловой системы запрещают использование управляющих символов в именах файлов. В Unix-подобных файловых системах нулевой символ и разделитель пути / запрещены.

В Windows

Утилиты файловой системы и соглашения об именах в различных системах запрещают использование определенных символов в именах файлов или делают их проблемными:

five\ and\ six\<seven (пример экранирования)
'five and six<seven' или "five and six<seven" (примеры цитирования)

Символ å ( 0xE5 ) не разрешался в качестве первой буквы в имени файла в 86-DOS и MS-DOS / PC DOS 1.x-2.x, но может использоваться в более поздних версиях.

В утилитах Windows нельзя использовать пробел и точку в качестве последнего символа имени файла. Точка разрешена в качестве первого символа, но некоторые приложения Windows, такие как Windows Explorer , запрещают создание или переименование таких файлов (несмотря на то, что это соглашение используется в Unix-подобных системах для описания скрытых файлов и каталогов). Обходные пути включают добавление точки при переименовании файла (которая затем автоматически удаляется), использование альтернативных файловых менеджеров , создание файла с помощью командной строки или сохранение файла с желаемым именем файла из приложения.

Некоторые файловые системы в данной операционной системе (особенно файловые системы, изначально реализованные в других операционных системах) и определенные приложения в этой операционной системе могут применять дополнительные ограничения и интерпретации. Подробнее об ограничениях см. Сравнение файловых систем .

В Unix-подобных системах, DOS и Windows имена файлов "." и ".." имеют особое значение (текущий и родительский каталог соответственно). Windows 95/98 / ME также использует такие имена, как «. », «. » и т. Д. Для обозначения каталогов прародителей или прародителей. Все версии Windows запрещают создание имен файлов, состоящих только из точек, хотя имена, состоящие из трех точек («. ») или более, допустимы в Unix.

Кроме того, в утилитах Windows и DOS некоторые слова также зарезервированы и не могут использоваться в качестве имен файлов. Например, файлы устройств DOS :

Системы с этими ограничениями вызывают несовместимость с некоторыми другими файловыми системами. Например, Windows не сможет обработать или создать отчеты об ошибках для этих допустимых имен файлов UNIX: aux.c, q "uote" s.txt или NUL.txt.

Имена файлов NTFS, которые используются для внутреннего использования, включают:

Сравнение ограничений имени файла

Запрещает использование символов в диапазоне 1-31 (0x01-0x1F) и символов "* /: <>? \ |, Если имя не помечено как находящееся в пространстве имен Posix. NTFS позволяет каждому компоненту пути (каталог или имя файла) быть Длина 255 символов.

Читайте также: