Имя файла в файловой системе windows может

Обновлено: 07.07.2024

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

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

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

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

В операционной системе Windows в имя файла:
Единицы измерения информации.doc

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

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

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

Файловая система - это система хранения файлов и организации каталогов.
Для дисков с небольшим количеством файлов (до нескольких десятков) удобно применять одноуровневую файловую систему, когда каталог (оглавление диска) представляет собой линейную последовательность имен файлов. Для отыскания файла на диске достаточно указать лишь имя файла. Если на диске хранятся сотни и тысячи файлов, то для удобства поиска файлы организуются в многоуровневую иерархическую файловую систему, которая имеет «древовидную» структуру (имеет вид перевернутого дерева).Начальный, корневой, каталог содержит вложенные каталоги 1-го уровня, в свою очередь, в каждом из них бывают вложенные каталоги 2-го уровня и т. д. Необходимо отметить, что в каталогах всех уровней могут храниться и файлы.

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

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

А теперь полную картину файловой структуры представьте себе так: вся внешняя память компьютера — это шкаф с множеством выдвижных ящиков. Каждый ящик — аналог диска; в ящике — большая папка (корневой каталог); в этой папке множество папок и документов (подкаталогов и файлов) и т.д. Самые глубоко вложенные папки хранят в себе только документы (файлы) или могут быть пустыми.


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

Например, путь к файлам на рисунке можно записать так:
C:\Рефераты\
C:\Рефераты\Физика\
C:\Рефераты\Информатика\
C:\Рисунки\

Полное имя файла.
Путь к файлу вместе с именем файла называют полным именем файла.
Пример полного имени файлов:
C:\Рефераты\Физика\Оптические явления.doc
C:\Рефераты\Информатика\Интернет.doc
C:\Рефераты\Информатика\Компьютерные вирусы.doc
C:\Рисунки\Закат.jpg
C:\Рисунки\ Зима.jpg

В операционной системе Windows вместо каталогов используется понятие «папка». Папка – это объект Windows, предназначенное для объединения файлов и других папок в группы. Понятие папки шире, чем понятие «каталог».

В Windows на вершине иерархии папок находится папка Рабочий стол. (Следующий уровень представлен папками Мой компьютер, Корзина и Сетевое окружение (если компьютер подключен к локальной сети).

Графический интерфейс Windows позволяет производить операции над файлами с помощью мыши с использованием метода Drag&Drop (тащи и бросай). Существуют также специализированные приложения для работы с файлами, так называемые файловые менеджеры.

NTFS (от англ. New Technology File System — «файловая система новой технологии») — стандартная файловая система для семейства операционных систем Microsoft Windows

NTFS заменила использовавшуюся в MS-DOS и Microsoft Windows файловую систему FAT. NTFS поддерживает систему метаданных и использует специализированные структуры данных для хранения информации о файлах для улучшения производительности, надёжности и эффективности использования дискового пространства

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

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




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

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

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

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

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

Например, в корневом каталоге могут находиться два вложенных каталога 1-го уровня (Каталог_1, Каталог_2) и один файл (Файл_1). В свою очередь, в каталоге 1-го уровня (Каталог_1) находятся два вложенных каталога второго уровня (Каталог_1.1 и Каталог_1.2) и один файл (Файл_1.1) - рис. 1.3.

Файловая система - это система хранения файлов и организации каталогов.

Рассмотрим иерархическую файловую систему на конкретном примере. Каждый диск имеет логическое имя (А:, В: - гибкие диски, С:, D:, Е: и так далее - жесткие и лазерные диски).

Пусть в корневом каталоге диска С: имеются два каталога 1-го уровня (GAMES, TEXT), а в каталоге GAMES один каталог 2-го уровня (CHESS). При этом в каталоге TEXT имеется файл proba.txt, а в каталоге CHESS - файл chess.exe (рис. 1.4).

Рис. 1.4. Пример иерархической файловой системы

Путь к файлу . Как найти имеющиеся файлы (chess.exe, proba.txt) в данной иерархической файловой системе? Для этого необходимо указать путь к файлу. В путь к файлу входят записываемые через разделитель "\" логическое имя диска и последовательность имен вложенных друг в друга каталогов, в последнем из которых содержится нужный файл. Пути к вышеперечисленным файлам можно записать следующим образом:

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

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

Представление файловой системы с помощью графического интерфейса . Иерархическая файловая система MS-DOS, содержащая каталоги и файлы, представлена в операционной системе Windows с помощью графического интерфейса в форме иерархической системы папок и документов. Папка в Windows является аналогом каталога MS-DOS

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

В Windows на вершине иерархии папок находится папка Рабочий стол. Следующий уровень представлен папками Мой компьютер, Корзина и Сетевое окружение (если компьютер подключен к локальной сети) - рис. 1.5.

Рис. 1.5. Иерархическая структура папок

Если мы хотим ознакомиться с ресурсами компьютера, необходимо открыть папку Мой компьютер.

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

. when altering one's mind becomes as easy as programming a computer, what does it mean to be human.

10 сентября 2011 г.

Сериализация - общие сведения о файлах

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

Все файловые системы следуют одной и той же общей системе именования отдельных файлов: базовое имя файла ( MyFile ) и дополнительное расширение файла ( txt ), разделенные точкой. Базовое имя файла вместе с расширением файла называется именем файла: ( MyFile.txt ). Тем не менее, каждая файловая система (вроде NTFS, CDFS, ExFAT, UDF, FAT и FAT32) может иметь конкретные и иные правила формирования отдельных компонентов в пути к каталогу или файлу. Обратите внимание, что каталог (также называемый директорией ), предназначенный для упорядочивания файлов путём группировки, - это просто файл со специальным атрибутом, отмечающим его как каталог, но в остальном каталоги должны следовать всё тем же правилам именования, как и обычные файлы. Поскольку термин "каталог" просто ссылается на специальный тип файла, то некоторые справочные материалы используют общий термин "файл", чтобы охватить как понятия каталога, так и понятие файла данных как такового. Из-за этого, если не указано иное, любые имена и правила использования или примеры для файла применимы также и к каталогам. Каталог не следует путать с папкой. Папка - это более общее понятие. Каталог всегда физически представлен на диске, а папка может как быть каталогом, так и представлять виртуальное (логическое) размещение - к примеру, папка "Сетевое окружение" или "Мой компьютер". Каталог самого верхнего уровня на диске называется корневым. Корневой каталог всегда единственен, но у каждого диска он свой.

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

Термин "путь" ссылается на один или несколько каталогов (или папок), разделённых обратной косой чертой (\ - обратный слэш, бэкслэш, back-slash), и, возможно, на имя тома ( C: ) или имя сервера ( \\server , \\?\UNC\server или \\?\C: ). Примечание: в некоторых дальневосточных версиях Windows для разделителя пути используется иной символ, но надо понимать, что это ровно тот же символ (с тем же ANSI-кодом), просто он выглядит иначе.

  1. LFS (Local File System) - имена в локальной файловой системе, например: C:\MyFolder\MyFile.txt
  2. UNC (Uniform Naming Convention) - сетевые UNC-имена, например: \\server\MyFolder\MyFile.txt
  3. Long UNC или UNCW - длинные имена, например: \\?\UNC\server\MyFolder\MyFile.txt или \\?\C:\MyFolder\MyFile.txt

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

Путь, начинающийся с имени тома ( C:\MyFolder\MyFile.txt ), имени сервера ( \\server\MyFolder\MyFile.txt ) или корневого каталога ( \MyFolder\MyFile.txt ) называется абсолютным - потому что такое имя всегда однозначно указывает на один и тот же файл, вне зависимости от внешнего окружения. В противном случае путь называется относительным (вроде MyFile.txt , .\MyFile.txt , .\MyFolder\MyFile.txt или ..\..\MyFolder\MyFile.txt ). Относительные пути трактуются в зависимости от текущего каталога. Поэтому один и тот же относительный путь может ссылаться на разные файлы. К примеру, путь MyFile.txt и .\MyFile.txt ссылаются на C:\MyFolder\MyFile.txt , если текущий каталог (или каталог, относительно которого происходит разрешение имени) равен C:\MyFolder\ , но эти же имена будут ссылаться на D:\Program Files\MyFolder\MyFile.txt , если текущий каталог - D:\Program Files\MyFolder\ . Не следует путать полное имя файла с абсолютным. Это немного разные понятия, хотя часто их рассматривают как синонимы. Под полным именем файла понимается имя файла с путём - имя, по которому можно найти файл. Но оно не обязано быть абсолютным. С другой стороны, любое абсолютное имя всегда является полным именем. В английском языке используется термин "fully-qualified path" ("полностью указанный путь") - это синоним абсолютного пути файла.

Ограничения на количество символов также могут быть различны и меняться в зависимости от файловой системы и способа именования файла. Это осложняется ещё и поддержкой обратной совместимости. Например, старые файловые системы MS-DOS поддерживают максимум 8 символов для базового имени файла и 3 символа для расширения - в общей сложности 12 символов, включая точку-сепаратор. Кроме того, эти имена не могли включать в себя многие символы - к примеру, пробел. Этот формат имени файла широко известен как "формат файла 8.3" или короткое имя файла. Файловые системы Windows не имеют подобного ограничения, и хотя они поддерживают имена формата 8.3 для обратной совместимости, в основном они работают с длинными именами файлов.

Соглашения по именованию

  • Используйте точку для отделения базового имени файла от расширения в имени файла или каталога. Каталоги могут иметь расширение, хотя обычно оно не используется.
  • Используйте обратную косую черту (\) для разделения компонентов пути. Обратная косая черта разделяет имя файла от пути к нему, и имя одного каталога от другого каталога в пути. Вы не можете использовать обратную косую черту как часть имени реального файла или каталога, потому что это зарезервированный символ, который делит полное имя файла на компоненты.
  • Используйте обратную косую черту в соответствии с требованиями как часть имени тома, например, C:\ в C:\path\file или \\server\share в \\server\share\path\file .
  • Имена файлов не чувствительны к регистру. Например, имена OSCAR , Oscar и oscar ссылаются на один и тот же файл. Примечание: в целях совместимости с POSIX стандартом вы можете включить чувствительность к регистру для файловых имён, но это нестандартное поведение и оно не рекомендуется к использованию в общих сценариях.
  • Имена томов (буквы дисков) также не чувствительны к регистру. Например, D: и d: относятся к одному и тому же тому.
  • Вы можете использовать любой символ для имени файла, включая Unicode символы, за исключением следующих специальных символов:
    • < (меньше)
    • > (больше)
    • : (двоеточие)
    • " (двойные кавычки)
    • / (косая черта, слэш)
    • \ (обратная косая черта, обратный слэш)
    • | (вертикальная черта, труба)
    • ? (знак вопроса)
    • * (звёздочка)
    • Ноль (NUL-символ)
    • Символы, чьи коды лежат в диапазоне от 1 до 31 (за исключением альтернативных потоков данных, где эти символы допускаются)
    • Любые другие символы, который не поддерживает нижележащая файловая система

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

    Если какой-то компонент пути является именем файла, то он должен быть последним компонентом в пути.

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

    Абсолютные и относительные пути

    • UNC-имя любого формата, которое всегда начинается с двух бэк-слешей ( \\ ).
    • Обозначение диска с бэк-слешем, например: C:\ или D:\ .
    • Один обратный бэк-слеш, представляющий корневой каталог - например, \folder или \file.txt .
    • C:tmp.txt ссылается на файл с именем tmp.txt в текущем каталоге на диске С.
    • C:Temp\tmp.txt ссылается на файл tmp.txt в подпапке Temp текущего каталога диска С.
    • ..\tmp.txt указывает на файл с именем tmp.txt , расположенный в родительском каталоге текущего каталога.
    • ..\..\tmp.txt указывает на файл, находящийся на два каталога выше текущего каталога.
    • ..\Temp\tmp.txt указывает на файл с именем tmp.txt , находящийся в каталоге Temp , который в свою очередь находится в родительском каталоге текущего каталога.
    • C. \Temp\tmp.txt указывает на файл с именем tmp.txt , находящийся в каталоге Temp , который в свою очередь находится в родительском каталоге текущего каталога диска C.
    • C:\Temp\..\Temp\tmp.txt и C:\Temp\.\tmp.txt - эти два пути ссылаются на файл C:\Temp\tmp.txt . Хотя никто не будет задавать путь в таком виде, но подобные пути могут получаться после склейки полного пути из нескольких компонентов из разных источников. Хотя путь такого вида является абсолютным (не относительным) в смысле исходного определения, иногда его всё же называют относительным, подчёркивая наличие компонента .. в пути.

    Максимальное ограничение длины пути

    В Windows максимальная длина пути равна MAX_PATH символов, где MAX_PATH определена как константа, равная 260 - за некоторыми исключениями, обсуждаемыми ниже. Локальный путь состоит из следующей последовательности: буква диска, двоеточие, бэк-слеш, компоненты имени, разделённые бэк-слешами. Например, максимальный путь на диске D имеет вид D:\какие-то-256-символов-пути (и ещё один символ, до 260, занимает терминирующий ноль).

    В Windows также имеются функции, которые позволяют использовать расширенные пути файлов. Для таких путей ограничение на максимальную длину имени равно 32'767 символов. А каждый компонент в пути ограничен значением, зависящим от файловой системы - как правило, 255 символов. Подобные пути задаются (и трактуются) специальным образом. Для задания такого пути нужно использовать префикс \\?\ , например: \\?\D:\очень-длинный-путь или \\?\UNC\server\очень-длинный-путь .

    Подобные имена можно использовать только в Unicode-функциях Windows. К ним (именам) следует относиться с осторожностью по двум причинам. Во-первых, обычные программы не смогут получить доступ к файлам и каталогам, имена которых превысят типичное ограничение в MAX_PATH . Во-вторых, UNCW-имена передаются нижележащей файловой системе "как есть", минуя обычный слой нормализации путей. К примеру, / не будет заменён на \, имена .. (две точки) и . (одна точка) не будут являться специальными и не будут разворачиваться в реальные имена каталогов. Вот почему и появляется возможность задавать имена более 260 символов в пути (а также имена с именами, иначе считающимися недопустимыми - скажем, с точкой на конце) - потому что имена передаются файловой системе без обработки, так что слой нормализации не накладывает ограничение в 260 символов (и другие правила файловых имён Windows).

    Пространства имён

    Префикс имени файла определяет пространство имён, к которому принадлежит путь. Существуют две основные категории пространств имён, используемые в Windows API: пространства имён NT и пространств имён Win32. Пространство имён NT было разработано как пространство имён низкого уровня, корневым пространством имён, поверх которого могли бы существовать другие пространства имён - включая подсистему Win32 и, как следствие, пространство имён Win32. POSIX является еще одним примером подсистемы в Windows, которая построена поверх NT.

    Для исследования пространства имён вы можете использовать утилиту WinObj от SysInternals.

    Файловые пространства имён Win32

    К ним относятся имена, начинающиеся с \\?\ - мы уже разобрали их выше.

    Префиксы вида C:\ являются псевдонимами.

    Пространства имён устройств Win32

    Для доступа к устройствам вместо физических файлов используется пространство имён устройств. Для указания пути при этом используется префикс \\.\ (два бэк-слеша, точка, бэк-слеш). К примеру, так вы можете получить доступ к диску как физическому устройству, без обращения к файловой системе. Но, конечно же, "устройства" не ограничиваются только дисками.

    К примеру, если вы хотите открыть порт последовательной связи номер 1, то вы можете использовать имя COM1 в вызове функции CreateFile . Это работает, потому что COM1-COM9 являются частью зарезервированных имён в пространстве имён NT. Это работает как псевдоним на устройство, хотя вы можете и явно указывать префикс \\.\ . Для сравнения: если вдруг у вас есть сто COM-портов и вам надо обратиться к 56-му COM-порту, то вы не сможете открыть его по имени COM56 - потому что для него нет никакого предопределённого псевдонима или резервирования. Вам нужно будет открыть его по имени \\.\COM56 .

    Пространства имён NT

    Существуют также API функции, которые позволяют использовать именование в стиле NT, но в большинстве случаев это не нужно. Для наиболее востребованных объектов создаются ссылки (псевдонимы), чтобы к ним можно было получить доступ, используя обычные функции. К примеру, к пространству имён NT относятся такие вещи как Serial0 и Serial1 , HarddiskVolume1 и Harddisk0 , но обычно с ними работают через пространство имён Win32, используя такие имена как C: и \\.\PhysicalDrive0 .

    Как уже было сказано, другие пространства имён реализуются поверх пространства имён NT. К примеру, для реестра в корне создаётся элемент REGISTRY , объекты ядра находятся в KernelObjects , про устройства и файлы Win32 я уже говорил, тут же находятся и сессии и, скажем, глобальные и локальные имена объектов IPC и так далее.

    Напоминаю, что вы можете использовать утилиту WinObj для просмотра пространств имён.

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

    Содержание

    История

    Слово file впервые применено к компьютерному хранилищу в 1950 году. Реклама памяти на запоминающих ЭЛТ фирмы RCA в журнале «Popular Science» [1] гласила:

    « …результаты бесчисленных вычислений можно держать «в картотеке» (on file) и получать снова. Эта «картотека» теперь существует в запоминающей трубке, разработанной в лабораториях RCA. Она электрически сохраняет цифры, отправленные в вычислительную машину, и держит их в хранилище, заодно запоминая новые — ускоряя интеллектуальные решения в лабиринтах математики. »

    В 1952 году слово file отнесли к колоде перфокарт [2] . Поначалу словом file называли само устройство памяти, а не его содержимое (см. Регистровый файл). Например, диски IBM 350, использовавшиеся, например, в машине IBM 305, назывались disk files. Системы наподобие Compatible Time-Sharing System ввели концепцию файловой системы, когда на одном запоминающем устройстве существует несколько виртуальных «устройств памяти», что и дало слову «файл» современное значение. Имена файлов в CTTS состояли из двух частей, «основного имени» и «дополнительного имени» (последнее существует и поныне как расширение имени файла).

    Классификация файлов

    Содержимое файлов

    Файлы могут содержать в себе любую информацию. Это могут быть как программы, выполняемые под управлением какой-либо операционной системы, либо файлы с данными для этих программ. Независимо от операционных систем персональных компьютеров все файлы можно разделить на текстовые и бинарные (по другому - двоичные ) файлы. Текстовыми файлами называют файлы, в которых используются в качестве информационных символы с шестнадцатеричными кодами 20h-7Eh (32 -126 десятичными) и 80h-7Eh (128 - 254 десятичными). В качестве служебных кодов и только в качестве них допускается использовать символы с кодами:

    • 09h (9) (HT) - горизонтальная табуляция.
    • 0Ah (10) (LF,EOL) - новая строка (перевод строки).
    • 0Bh (11) (VT) - вертикальная табуляция.
    • 0Ch (12) (FF) - новая строка (перевод страницы).
    • 0Dh (13) (CR) - возврат каретки.
    • 1Ah (26) (SUB,EOF) - конец файла.

    Примечание: При визуализации текстового файла символ горизонтальной табуляции заменяется несколькими (обычно восемью) проблемами, символ вертикальной табуляции - несколькими пустыми строками. Символ возврата каретки переводит курсор (или позицию вывода нового символа) на первый элемент начала строки. Символ перевода строки выводит следующий символ на своем месте, только строкой ниже. Поэтому символ EOL (End-of-Line) действительности - это последовательность символов CR/LF. Все символы, расположенные после символа конца файла, при выводе игнорируются.

    Среди всех текстовых файлов можно выделить подмножество чистых ASCII файлов , информационные символы которых имеют только коды с номерами 20h - 7Eh. Двоичные же файлы представляют из себя последовательность из любых символов. Их длина определяется из заголовка файла. Это разделение является важным для различных операционных систем, поскольку назначение и обработка бинарных и текстовых файлов в операционных системах различаются.

    Другие виды классификации файлов

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

    Файлы и каталоги

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

    Параметры файлов

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

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

    В зависимости от файловой системы, файл может обладать различным набором свойств.

    Имя файла

    В большинстве файловых систем имя файла используется для указания, к какому именно файлу производится обращение. В различных файловых системах ограничения на имя файла сильно различаются: в FAT16 и FAT12 размер имени файла ограничен 8.3 знаками (8 на имя и 3 на расширение); в других системах имя файла ограничено обычно в 255 байт; в NTFS имя ограничено в некоторых ОС 256 символами Unicode (по спецификации — 32 768 символов).

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

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

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

    Расширение имени файла (часто расширение файла или расширение) как самостоятельный атрибут файла существует в файловых системах FAT16, FAT32, NTFS, используемых операционными системами MS-DOS, DR-DOS, PC DOS, MS Windows и используется для определения типа файла. Оно позволяет системе определить, каким приложением следует открывать данный файл. По умолчанию в операционной системе Windows расширение скрыто от пользователя.

    В остальных файловых системах расширение — условность, часть имени, отделённая самой правой точкой в имени.

    Основные атрибуты

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

    Название атрибута перевод значение файловые системы операционные системы
    READ ONLY только для чтения в файл запрещено писать FAT32, FAT12, FAT16, NTFS, HPFS, VFAT DOS, OS/2, Windows
    SYSTEM системный критический для работы операционной системы файл FAT32, FAT12, FAT16, NTFS, HPFS, VFAT DOS, OS/2, Windows
    HIDDEN скрытый файл скрывается от показа, пока явно не указано обратное FAT32, FAT12, FAT16, NTFS, HPFS, VFAT DOS, OS/2, Windows
    ARCHIVE архивный (требующий архивации) файл изменён после резервного копирования или не был скопирован программами резервного копирования; при изменении файла ОС автоматически устанавливает этот атрибут FAT32, FAT12, FAT16, NTFS, HPFS, VFAT DOS, OS/2, Windows
    Suid Установка пользовательского ID выполнение программы от имени владельца ext2 Unix-like
    Sgid Установка группового ID выполнение программы от имени группы (для каталогов: любой файл созданный в каталоге с установленным SGID, получит заданную группу-владельца) ext2 Unix-like
    Sticky bit липкий бит изначально предписывал ядру не выгружать завершившуюся программу из памяти сразу, а лишь спустя некоторое время, чтобы избежать постоянной загрузки с диска наиболее часто используемых программ, в настоящее время в разных ОС используется по-разному ext2 Unix-like

    Время

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

    Владелец и группа файла

    В некоторых файловых системах предусмотрено указание на владельца файла и группу-владельца.

    Права доступа

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

    В UNIX-подобных операционных системах для файлов обычно выделяют три типа прав: на запись, чтение и выполнение.

    Каждое право задаётся раздельно для владельца, для группы и для всех остальных. ACL позволяют расширить этот список.

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

    Каждое право может быть задано как разрешением, так и запретом, запрет имеет больший приоритет, чем разрешение. Представление файлов в графических оболочках.

    Просмотр файлов в DOS Shell

    Оболочка DOS Shell не случайно рассматривается первой среди всех графических оболочек фирмы Microsoft. Именно здесь зародились все остальные приемы работы и назначения клавиш, используемые в более “молодых” оболочках.

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

    Интерфейс SHELL представляет собой программу, которая выполняет функции DOS. При работе с этой программой обычный символ готовности (>) отсутствует.

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

    Оболочка Shell запускается командой:

    После ввода этой команды и запуска MS-DOS SHELL на экране появляется окно интерфейса. Программа DOSSHELL занимает 4,4 Кб памяти.

    Выход и возврат в Shell

    Некоторые программы не работают под управлением интерфейса SHELL. Для их запуска необходимо выйти из этой оболочки. Существует два Способа выхода из MS-DOS SHELL, Если нужно временно покинуть SHELL для выполнения каких-либо действий с использованием командного режима DOS, то следует нажать клавиши Shift+F9 либо в списке программ Главной Группы (Main) выбрать Командный Режим (Command Prompt). На экране дисплея появляется текст:

    Microsoft (R) MS-DOS (R) Version 5.0 (С) Copyright Corp 1981- и символ готовности, например, С:\>.

    Для возврата в SHELL следует ввести команду EXIT. Возврат происходит в тот каталог, из которого был осуществлен выход из SHELL.

    Резидентные в памяти программы (TSR) следует запускать до ввода команды DOSSHELL. Например, команду PRINT необходимо вводить до запуска интерфейса SHELL

    Если нужно окончательно выйти из SHELL и вернуться в командный режим DOS, то следует нажать функциональную клавишу F3. После этого на экране появляется символ готовности DOS (>) и программа SHELL удаляется из памяти, освобождая пространство размером 4,4 Кб. Аналогичный выход из SHELL осуществляется нажатием клавиш Alt+F4, либо выбором eXit (Выход) в меню File (Файл). Обратно к интерфейсу SHELL можно вернуться повторным его запуском командой DOSSHELL.

    Терминология, используемая в Shell

    После ввода команды DOSSHELL на экране появляется окно графического интерфейса Shell. Графический интерфейс может работать в двух режимах:

    • Графический режим: в качестве указателя мыши используется стрелка, а место указания выбора каталога или файла обозначается пиктограммой в виде прямоугольника.
    • Текстовый режим: В качестве указателя мыши используется прямоугольник, а место указания выбора каталога обозначается квадратными скобками. Перед файлами такое место указания не предусмотрено.

    При описании графического интерфейса SHELL используется следующая терминология:

    Представление файлов и каталогов в графической оболочке SHELL осуществляется с помощью дерева каталогов и списка файлов в текущем каталоге.

    Операции над файлами

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

    • Копирование — копия файла помещается в другой каталог.
    • Чтение — данные из файла помещаются в область памяти.
    • Перемещение — сам файл перемещается в другой каталог.
    • Удаление — запись о файле удаляется из каталога.
    • Переименование — изменяется имя файла.
    • Запись — в файл помещаются данные.

    Особенности реализации

    В операционной системе UNIX процессы (обычно находятся в каталоге /proc) и устройства (/dev) представляются в виде файлов особого рода, что позволяет использовать некоторые файловые операции для манипуляции этими объектами.

    В некоторых файловых системах (например, в файловой системе OS VAX VMS) файлы имеют версию, что позволяет открывать более старые варианты данного файла. В файловой системе Mac OS (HFS) у файлов есть два «потока»: поток данных (где хранится содержимое файла) и поток ресурсов, хранящий информацию о программе, предназначенной для открывания данного файла и, возможно, некоторую информацию для этой программы. В NTFS файл может содержать, кроме основного, сколько угодно именованных потоков.

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