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

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

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

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

Каталог (папка) — это поименованная совокупность файлов и подкаталогов (вложенных каталогов).

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

Функции файловой системы

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

Файловая система — это часть ОС, определяющая способ организации, хранения и именования данных на носителе информации.

Современные файловые системы решают следующие задачи:

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

Рассмотрим некоторые из этих функций более подробно.

Правила построения имён файлов и каталогов

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

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

В Linux эти символы, кроме /, допустимы, хотя использовать их следует с осторожностью, т. к. некоторые из них могут иметь специальный смысл, а также из соображений совместимости с другими ОС.

Операционная система Linux, в отличие от Windows, различает строчные и прописные буквы в имени файла, например: FILE.txt, file.txt и FiLe.txt — это в Linux три разных файла.

Порядок размещения файлов на диске

Файл, представляемый нами как единое целое, на самом деле может быть разбросан «кусочками» по всему диску. Минимальный размер такого «кусочка» (кластера, блока) — от 512 байт до 64 Кбайт в зависимости от используемой файловой системы. При размещении на диске каждому файлу отводится целое число кластеров. Например, на файл размером 65 Кбайт будет отведено два кластера по 64 Кбайта, при этом второй кластер будет считаться занятым, хотя фактически значительная его часть использоваться не будет.

Защита данных в случае сбоев и ошибок

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

Файловые структуры

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

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

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

Графическое изображение иерархической файловой структуры называется деревом. Древовидные иерархические структуры можно изображать вертикально и горизонтально (рис. 2.10).

Типовая древовидная иерархическая структура,

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

Полное имя файла — запись пути к файлу, завершаемая именем файла.

Например:

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

Рассмотрим несколько примеров масок:

  • маске *.* соответствуют абсолютно все файлы, поскольку набор произвольных символов указывается как для имени, так и для расширения файла;
  • маске *.mр3 соответствуют все аудиозаписи формата mp3;
  • маска info.* позволит отобрать файлы всех типов с именем info;
  • маске info*.* будут соответствовать все файлы, начинающиеся с info;
  • маске *info.* будут соответствовать все файлы, имена которых заканчиваются на info;
  • маска ???.* позволит отобрать все файлы с трёхбуквенными именами;
  • маске info??.* будут соответствовать все файлы, имена которых состоят из шести символов и начинаются с info;
  • маска info??*.* позволяет найти все файлы, имена которых начинаются с info и содержат шесть и более символов.

Пример:

В каталоге находится 6 файлов:

motors.dat;
torsten.docx;
motors.doc;
victoria.docx;
storch.doc;
x_torero.doc

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

motors.doc;
storch.doc;
victoria.docx;
x_torero.doc

Какая из следующих масок была при этом использована?

1) *tor?*.d*;
2) ?tor*.doc;
3) *?tor?*.do*;
4) *tor?.doc*.

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

группы файлов

Здесь мы серым цветом выделили строки, соответствующие файлам, которые должны быть отобраны.

Если файл соответствует маске, то в ячейке, находящейся на пересечении строки с именем файла и столбца с именем маски, будем ставить « + », в противном случае — «-».

В столбце искомой маски, знаки «+» должны соответствовать отобранным файлам, знаки «-» — всем прочим.

Анализируя маску *tor?*.d*, ставим знак «+» в ячейку, соответствующую файлу motors.dat. Данная маска позволяет отобрать файл, который не входит в интересующую нас группу, следовательно, она не может обеспечить отбор нужных файлов. Дальнейшее рассмотрение этой маски можно прекратить.

Маска ?tor*.doc не позволит отобрать файл motors.dat, но она же не позволит отобрать и подлежащий отбору файл motors.doc. Следовательно, дальнейшее рассмотрение этой маски можно прекратить.

Маска *?tor?*.do* позволяет отобрать только те файлы, которые нам нужны. Её можно использовать для решения задачи.

Но, возможно, задача имеет не одно решение. Проверяем маску *tor?.doc*. Она не позволит нам отобрать файл storch.doc.

Итак, решением задачи может быть только третья маска (*?tor?*.do*).

Источники: Босова Л. Л., Босова А. Ю., Информатика: учебник для 10 класса. М. : БИНОМ. Лаборатория знаний

Задания к уроку