Файл: имена файлов. Полное, короткое, длинное, корректное и некорректное имя файла, его состав, шаблон и маска

Файл: имена файлов. Полное, короткое, длинное, корректное и некорректное имя файла, его состав, шаблон и маска

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

Понятия «путь» и «имя файла»

Очень часто в компьютерной литературе используются термины «путь» и «имя файла» под разными значениями. Обычно под словом «путь» понимают адрес или расположение файла, т. е. диск, папка и подпапки в которых расположен файл. Однако Microsoft и другие считают, что в путь к файлу входит не только его расположение но и само имя файла. А некоторые подразумевают под словом «путь» только имена файла и папок, в которых он расположен, без указания диска. Некоторые пользователи полагают, что «имя файла» не включает расширение. В данной статье расширение всегда является частью имени файла. На примере ниже синим цветом выделен путь к файлу, а красным имя файла.
X:\папка\подпапка\
файл.расширение

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

Большинство часто употребляемых символов разрешается использовать в имени файла. Имя файла не должно содержать „< ” (знак меньше), „> ” (знак больше), „: ” (двоеточие), „«” (двойные кавычки), „/” (слеш), „\” (обратный слеш), „|” (вертикальная черта), „?” (вопросительный знак), „*” (звездочка), а также не может заканчиваться точкой или пробелом. Файлы также нельзя называть зарезервированными именами устройств: CON , PRN , AUX , NUL , COM1 , COM2 , COM3 , COM4 , COM5 , COM6 , COM7 , COM8 , COM9 , LPT1 , LPT2 , LPT3 , LPT4 , LPT5 , LPT6 , LPT7 , LPT8 , и LPT9 .

Ограничения на длины имен файлов и путей

Существуют ограничения на длину имени файла и на длину пути. Абсолютное ограничение длины имени файла вместе включая путь к нему равно 260 символам. Этот предел называют термином MAX_PATH . На самом же деле на практике пределы для имен еще меньше из-за ряда других ограничений. Например, каждая строка на конце должна содержать так называемый нулевой символ , который обозначает конец строки. Несмотря на то, что маркер конца строки не отображается, он учитывается как отдельный символ при подсчете длины, а значит остается 259 символов доступных для имени файла и пути к нему. Первые три символа в пути используются для обозначения диска (например, C:\ ). Это уменьшает предел для имен папок, подпапок и файла до 256 символов.

На имя объекта (папки или файла) наложено ограничение длины 255 символов. Этот предел действителен только, если объект не расположен внутри папки. Так как при расположении объекта внутри папки, сумма длин всех папок в которых он расположен, разделителей и имени объекта ограничена 256 символами, то предел длины самого имени объекта меньше 255 символов.

Файловая система

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

Диски обозначаются буквами латинского алфавита и знаком двоеточия. Жесткий диск может быть разбит на несколько логических дисков, которые обозначаются буквами С:, D:, E: и т.д.

По существу папка представляет собой особый тип файла, в котором содержится информация о находящихся в ней файлах и папках.

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

Формат записи адреса: Имя диска:\Папка1\Папка2\ .

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

Запись файлов на диск производится частями. Наименьшее место, которое могут занимать на диске записываемые данные, составляет один кластер – это минимальный адресуемый элемент диска. Кластер может состоять из одного или нескольких секторов. Объем сектора составляет 512 байт.

Система организации хранения файлов называется файловой системой . Windows поддерживает три файловые системы: FAT16 (или просто FAT), FAT32 и NTFS. Выбор файловой системы осуществляется при установке Windows и форматировании диска.

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

В загрузочном секторе (Boot Record) хранятся данные о формате диска и его файловой системе.

В корневом каталоге содержится перечень файлов, находящихся на диске. Запись о файле содержит имя файла, адрес первого кластера, объем файла, а также время и дату его создания.

Таблица размещения файлов (File Allocation Table, сокращенно FAT) содержит описание порядка расположения всех файлов в кластерах данного диска, а также информацию о дефектных участках диска. Количество ячеек FAT-таблицы соответствует количеству кластеров на диске, а значениями ячеек являются цепочки размещения файлов, т.е. последовательность адресов кластеров, в которых хранятся файлы. Порядковый номер ячейки FAT-таблицы соответствует адресу кластера.

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

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


Файлы программ называются исполняемыми файлами. Они имеют расширение com или exe .

В имени файла запрещено использование следующих служебных символов: \ / : * ? “ < > |.

Имеются некоторые отличия в задании имен файлов в ОС MS DOS и Windows. В MS DOS длина имени не должна превышать 8 символов, в Windows – 256 символов. В MS DOS нельзя использовать символы русского алфавита и пробелы, а в Windows можно.

Для обозначения группы файлов применяются шаблоны, в которых используются подстановочные символы. Звездочка (*) обозначает любое количество любых символов, вопросительный знак (?) – один любой символ. Например, шаблон p* означает, что имя файла начинается на букву р, шаблон р???л – что в имени файла между буквами р и л находятся три любых знака, а шаблон *.txt обозначает все файлы с расширением txt.

В некоторых программах используется знак вертикальной черточки (|), обозначающий исключение некоторых шаблонов. Например, *.*|*.bak означает все файлы, кроме файлов с расширением bak.

Файл - это определенное количество информации (программа или данные), имеющее имя и хранящееся в долговременной (внешней) памяти.

Имя файла состоит из двух частей, разделенных точкой: собственно имя файла и расширение, определяющее его тип (программа, данные и т. д.). Собственно имя файлу дает пользователь, а тип файла обычно задается программой автоматически при его создании. Расширение файла - часть имени файла, отделённая самой правой точкой в имени.

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

После введения в действие операционной системы Windows 95 требования к именам файлов стали существенно мягче. Они действуют и во всех последующих версия операционных систем Windows.

1. Разрешается использовать до 255 символов.

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

3. Разрешается использовать пробелы и другие ранее запрещенные символы, за исключением следующих девяти: /\:*?"<>|.

4. В имени файла можно использовать несколько точек. Расширением имени считаются все символы, стоящие за последней точкой.

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

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

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

Для дисков с небольшим количеством файлов (до нескольких десятков) удобно применять одноуровневую файловую систему, когда каталог (оглавление диска) представляет собой линейную последовательность имен файлов. Для отыскания файла на диске достаточно указать лишь имя файла. Такая одноуровневая схема использовалась в первых версиях MS-DOS. Сегодня её можно встретить, например, в некоторых цифровых фотоаппаратах: все сделанные фотографии складываются в один каталог.

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

В таком случаи файлы на дисках объединяются в каталоги. Начальный, корневой, каталог содержит вложенные каталоги 1-го уровня, в свою очередь, в каждом из них бывают вложенные каталоги 2-го уровня и т. д. Необходимо отметить, что в каталогах всех уровней могут храниться и файлы. В Windows каталоги называются папкам

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

Только чтение (R);

Архивный (A);

Скрытый (H);

Системный (S).

Атрибут файла «Только чтение»

Данный атрибут указывает, что файл нельзя изменять. Все попытки изменить файл с атрибутом «только чтение», удалить его или переименовать завершатся неудачно.

Атрибут файла «Скрытый»

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

Атрибут файла «Архивный»

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

Атрибут файла «Системный»

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

СПЕЦИФИКАЦИЯ ФАЙЛА

Чтобы опеpационная система могла обнаpужить файл, ей нужно сообщить

его имя. Кpоме этого, необходимо указать диск, где находится файл. Для

обозначения диска используется шифp устpойства (дисковода), на котоpом

он установлен. Шифp устpойства пpедставляет собой букву алфавита, за

котоpой следует двоеточие. Пеpвому дисководу в системе пpисваивается

шифp "A:", втоpому - "B:". Пеpвый дисковод для жесткого диска обычно

помечается шифpом "C:". Дисководы pазличаются по шифpу устpойства и

называются: дисковод A, дисковод В и т.д.

Шифp устpойства, записанный в комбинации с именем файла, пpедставляет

собой спецификацию файла. Спецификация вводится в фоpмате: ("шифp

устpойства""пpостое имя.pасшиpение"). Напpимеp, спецификация файла с

пpостым именем "instruct" и pасшиpением "txt", находящегося на диске A,

выглядит следующим обpазом: "A:instruct.txt".

Типы файловых систем

По способу идентификации данных различают:

Тривиальные ФС, определяющие хранение файлов в единственной «куче», корневом каталоге носителя. Эти системы практически вымерли, и замещены на иерархические. Из применяющихся можно назвать TR-DOS на компьютере Sinclair ZX-Spectrum.

Иерархические ФС, обеспечивающие хранение файлов в древовидной структуре каталогов. Являются самым распространёным видом ФС. В настольных системах начиная с 1990-х применяются практически только они.

Реляционные, ассоциативные, (?) прочие ФС, обеспечивающие другие методы идентификации данных. Применяются крайне редко по причине узкой области применения.

Файловые системы различаются по устойчивости к сбоям:

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

Устойчивые к сбоям системы представляют полностью согласованные структуры в любой момент времени существования файловой системы, таким образом, отстутствуют моменты, когда сбой может привестик потерям данных или разрушению ФС. Как правило это журналируемые ФС, дублирующие все изменения структуры в специальной области - журнале, таким образом, в случае сбоя имеющие возможность завершить незавершённую операцию или откратить состояние ФС до сбоя.

Имена файлов.

Файлы идентифицируются именами. Пользователи дают файлам символьные имена, при этом учитываются ограничения ОС как на используемые символы, так и на длину имени. До недавнего времени эти границы были весьма узкими. Так в популярной файловой системе FAT длина имен ограничивается известной схемой 8.3 (8 символов - собственно имя, 3 символа - расширение имени), а в ОС UNIX System V имя не может содержать более 14 символов. Однако пользователю гораздо удобнее работать с длинными именами, поскольку они позволяют дать файлу действительно мнемоническое название, по которому даже через достаточно большой промежуток времени можно будет вспомнить, что содержит этот файл. Поэтому современные файловые системы, как правило, поддерживают длинные символьные имена файлов. Например, Windows NT в своей новой файловой системе NTFS устанавливает, что имя файла может содержать до 255 символов, не считая завершающего нулевого символа.

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

Длинные имена поддерживаются не только новыми файловыми системами, но и новыми версиями хорошо известных файловых систем. Например, в ОС Windows 95 используется файловая система VFAT, представляющая собой существенно измененный вариант FAT. Среди многих других усовершенствований одним из главных достоинств VFAT является поддержка длинных имен. Кроме проблемы генерации эквивалентных коротких имен, при реализации нового варианта FAT важной задачей была задача хранения длинных имен при условии, что принципиально метод хранения и структура данных на диске не должны были измениться.

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

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

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

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

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

Процессы в ОС UNIX.

Кроме ОС, ориентированных на определенный тип аппарат­ной платформы, существуют мобильные ОС, легко переносимые на разные типы компьютеров (UNIX). В таких ОС аппаратно-зависимые места локализованы и при переносе системы перепи­сываются. Аппаратно-независимая часть реализуется на языке программирования высокого уровня, как правило, на языке С, и перекомпилируется при переходе на другую платформу.

Внастоящий момент около 90% компьютеров используют ОС Windows. Более широкий класс операционных систем ориентирован для использования на серверах. К этому классу ОС относятся семействоUNIX , разработки фирмы Microsoft (MS DOS и Windows), сетевые продуктыNovell и корпорацииIBM .

UNIX - многопользовательская, многозадачная операционная система, кото-рая включает достаточно мощные средства защиты программ и файлов различных пользователей. ОС UNIX является машинонезависимой, что обеспечивает высо-кую мобильность и легкую переноси­мость прикладных программ на компьютеры различной архитек­туры. Важной особенностью ОС семейства UNIX являются ее модульность и обширный набор сервисных программ, которые позволяют создать благоприятную операционную обстановку для пользователей-программистов (то есть система особенно эффектив­на для специалистов - прикладных программистов). Независимо от версии общими для UNIX чертами являются многопользовательский режим со средствами защиты данных от несанкциониро-ванного доступа; реализация многозадачной обра­ботки в режиме разделения времени ; переносимость системы путем написания основной части на языке С.



Недостатком системы UNIX является большая ресурсоемкость, которая для неболь­ших однопользовательских систем на базе персональных компь­ютеров чаще всего является избыточной.

В целом ОС семейства UNIX ориентированы, прежде всего, на большие локальные (корпоративные ) и глобальные сети , объеди­няющие работу тысяч пользователей. Большое распространение UNIX и ее версия LINUX получили в сети Интернет, где важней­шее значение имеет машинонезависимость операционной системы.

Компромиссное решение применено в файловых системах ОС UNIX. На базовом уровне в этих файловых системах поддерживаются изолированные архивы файлов. Один из этих архивов объявляется корневой файловой системой. После запуска системы можно "смонтировать" корневую файловую систему и ряд изолированных файловых систем в одну общую файловую систему. Технически это производится с помощью создания в корневой файловой системе специальных пустых каталогов. Специальный системный вызов mount ОС UNIX позволяет подключить к одному из этих пустых каталогов корневой каталог указанного архива файлов. После монтирования общей файловой системы именование файлов производится так же, как если бы она с самого начала была централизованной. Если учесть, что обычно монтирование файловой системы производится при раскрутке системы, то пользователи ОС UNIX обычно и не задумываются об исходном происхождении общей файловой системы.

Файловые системы ext2 и ext3 допускают наличие в именах файлов практически любых символов, кроме разделителя директорий (/). Однако я не советую использовать имена, содержащие русские буквы, знаки пунктуации (кроме точки), пробелы, псевдографику, экзотические знаки вроде символа перехода на новую строку. Не стоит также начинать имена файлов с дефиса (-). Тут дело в том, что многие программы, работающие с файлами, принимают в командной строке ключи (опции), начинающиеся с дефиса. Например, вы хотите пролистать каталог по имени -lR командой ls -lR . Но -lR будет воспринято программой ls не как имя каталога, а как ключи -l (выдать подробный листинг) и -R (рекурсивно), и в результате вы получите листинг текущего каталога (так как каталог не указан, программа ls по умолчанию работает с текущим). Во всех остальных случаях дефис в именах файлов вполне допустим и часто используется. Советуем ограничиться следующим набором символов - латинские буквы (большие и маленькие), цифры, знак подчёркивания, дефис (но не в начале), точка.

Термин «расширение» сохранился со времён, когда операционная система Microsoft DOS была самой популярной для персональных компьютеров типа IBM PC. Файловая система DOS позволяла в именах файлов не более 11 знаков; первые не более 8 из них считались основным именем (base name), а не более 3 последних - расширением (extension ) имени. Для отделения основной части имени от расширения использовалась точка (кроме специальных имён - . и..). Сама точка не считалась частью имени. Имена WORK и WORK. означали одно и то же. Вот пример имени файла наиболее длинного имени: AUTOEXEC.BAT . Многие программы для DOS и Windows придают расширениям чересчур большое значение - например, Microsoft Word будет упорно пытаться открыть файл с расширением.DOC как документ в его родном формате, даже если в файле содержится простой текст. В файловых системах Linux точка - такая же часть имени, что и любой другой символ. Теперь уже WORK и WORK. станут ссылаться на разные файлы. Если угодно, можно по-прежнему называть часть имени файла, следующую за точкой, расширением, хотя точек в имени может быть и несколько. Например, файловому архиву в формате tar , сжатому компрессором lzma , часто дают суффикс.tar.lzma . Большинство программ для Linux не связывают расширение имени файла с его содержимым, либо связывают, но позволяют явно указать тип содержимого файла с помощью опций. Тот же Perl будет запускать свои программы по имени, независимо от того, какое расширение использовано - .pl , .plx или.cgi , и есть ли оно вообще.

Некоторые программы вроде текстовых редакторов, работающие с файлами, и «на месте» изменяющие их содержимое, способны оставлять резервные копии. Имена таких копий обычно получаются из исходных имён добавлением знака ~ в конце, например, linux.html~ .



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows