Какие операции могут производиться над файлами
Аннотация: В настоящей лекции вводится понятие и рассматриваются основные функции и интерфейс файловой системы.
Открыть файл или папку
Наверно самая частая операция с файлами и папками, в результате которой мы можем увидеть их содержимое. В случае папки мы видим содержащиеся в ней файлы и другие каталоги. Открывая файл, мы указываем операционной системе запустить программу, ассоциированную с данным типом файлов и открыть файл в ней. В результате на мониторе отобразится текст, хранящийся в текстовом файле или запуститься проигрывание фильма и так далее.
Достигнуть данного результата можно по-разному, в зависимости от настроек системы и используемых программ. Самый простой способ открыть файл или папку это сделать по ней двойной щелчок левой кнопкой мыши (ЛКМ), однако начинающим пользователям данное действие бывает сложно сделать. В таком случае можно щелкнуть по нужному объекту один раз ЛКМ , он выделится и нажать клавишу Enter или кликнуть по нему правой кнопкой мыши (ПКМ) и выбрать в появившемся контекстном меню пункт «Открыть».
Вверху Проводника есть собственное меню позволяющее производить операции с объектами и настроить сам Проводник. Если вы не ведите меню, нажмите клавишу F10 на клавиатуре. Выделите объект щелчком ЛКМ и выберите в меню «Файл» ⇒ «Открыть».
Может возникнуть ситуация, когда Windows не знает с помощью какой программы нужно открыть данный файл или вы хотите открыть его в другой программе. Для этого нужно щелкнуть по файлу ПКМ и выбрать в контекстном меню пункт «Открыть с помощью» и указать нужную программу.
Организация файлов и доступ к ним
Программист воспринимает файл в виде набора однородных записей. Запись - это наименьший элемент данных , который может быть обработан как единое целое прикладной программой при обмене с внешним устройством. Причем в большинстве ОС размер записи равен одному байту. В то время как приложения оперируют записями, физический обмен с устройством осуществляется большими единицами (обычно блоками). Поэтому записи объединяются в блоки для вывода и разблокируются - для ввода. Вопросы распределения блоков внешней памяти между файлами рассматриваются в следующей лекции.
ОС поддерживают несколько вариантов структуризации файлов .
Последовательный файл
Простейший вариант - так называемый последовательный файл . То есть файл является последовательностью записей. Поскольку записи, как правило, однобайтовые, файл представляет собой неструктурированную последовательность байтов.
Обработка подобных файлов предполагает последовательное чтение записей от начала файла , причем конкретная запись определяется ее положением в файле . Такой способ доступа называется последовательным (модель ленты). Если в качестве носителя файла используется магнитная лента, то так и делается. Текущая позиция считывания может быть возвращена к началу файла ( rewind ).
Файл прямого доступа
В реальной практике файлы хранятся на устройствах прямого (random) доступа, например на дисках, поэтому содержимое файла может быть разбросано по разным блокам диска, которые можно считывать в произвольном порядке. Причем номер блока однозначно определяется позицией внутри файла .
Здесь имеется в виду относительный номер, специфицирующий данный блок среди блоков диска, принадлежащих файлу . О связи относительного номера блока с абсолютным его номером на диске рассказывается в следующей лекции.
Естественно, что в этом случае для доступа к середине файла просмотр всего файла с самого начала не обязателен. Для специфицирования места, с которого надо начинать чтение, используются два способа: с начала или с текущей позиции, которую дает операция seek. Файл , байты которого могут быть считаны в произвольном порядке, называется файлом прямого доступа .
Таким образом, файл , состоящий из однобайтовых записей на устройстве прямого доступа, - наиболее распространенный способ организации файла . Базовыми операциями для такого рода файлов являются считывание или запись символа в текущую позицию. В большинстве языков высокого уровня предусмотрены операторы посимвольной пересылки данных в файл или из него.
Подобную логическую структуру имеют файлы во многих файловых системах, например в файловых системах ОС Unix и MS-DOS. ОС не осуществляет никакой интерпретации содержимого файла . Эта схема обеспечивает максимальную гибкость и универсальность. С помощью базовых системных вызовов (или функций библиотеки ввода/вывода) пользователи могут как угодно структурировать файлы . В частности, многие СУБД хранят свои базы данных в обычных файлах .
Другие формы организации файлов
Известны как другие формы организации файла , так и другие способы доступа к ним, которые использовались в ранних ОС, а также применяются сегодня в больших мэйнфреймах (mainframe), ориентированных на коммерческую обработку данных.
Другой способ представления файлов - последовательность записей переменной длины, каждая из которых содержит ключевое поле в фиксированной позиции внутри записи (см. рис. 11.1). Базисная операция в данном случае - считать запись с каким-либо значением ключа. Записи могут располагаться в файле последовательно (например, отсортированные по значению ключевого поля) или в более сложном порядке. Метод доступа по значению ключевого поля к записям последовательного файла называется индексно-последовательным.
В некоторых системах ускорение доступа к файлу обеспечивается конструированием индекса файла . Индекс обычно хранится на том же устройстве, что и сам файл , и состоит из списка элементов, каждый из которых содержит идентификатор записи, за которым следует указание о местоположении данной записи. Для поиска записи вначале происходит обращение к индексу, где находится указатель на нужную запись. Такие файлы называются индексированными, а метод доступа к ним - доступ с использованием индекса.
Предположим, у нас имеется большой несортированный файл , содержащий разнообразные сведения о студентах, состоящие из записей с несколькими полями, и возникает задача организации быстрого поиска по одному из полей, например по фамилии студента. Рис. 11.2 иллюстрирует решение данной проблемы - организацию метода доступа к файлу с использованием индекса.
Следует отметить, что почти всегда главным фактором увеличения скорости доступа является избыточность данных.
Способ выделения дискового пространства при помощи индексных узлов, применяемый в ряде ОС (Unix и некоторых других, см. следующую лекцию), может служить другим примером организации индекса.
В этом случае ОС использует древовидную организацию блоков, при которой блоки, составляющие файл , являются листьями дерева, а каждый внутренний узел содержит указатели на множество блоков файла . Для больших файлов индекс может быть слишком велик. В этом случае создают индекс для индексного файла (блоки промежуточного уровня или блоки косвенной адресации).
Файл – это поименованная область внешней памяти.
Операции над файлами:
- Копирование
- Перемещение
- Переименование
- Удаление
- Поиск
Маска представляет собой последовательность букв, цифр и прочих допустимых символов, среди которых также могут встречаться следующие символы:
? – означает ровно один произвольный символ
* – означает любую последовательность символов, в том числе, и пустую.
Каталог – это поименованная совокупность файлов и подкаталогов.
Файловая структура – это совокупность файлов на диске и взаимосвязей между ними.
Простые файловые структуры могут использоваться для дисков с небольшим (до нескольких десятков) количеством файлов.
Иерархические файловые структуры используются для хранения большого (сотни и тысячи) количества файлов.
Графическое изображение иерархической файловой структуры называется деревом.
Последовательно записанные: путь к файлу и имя файла, составляют полное имя файла.
Основная литература:
1. Босова Л. Л. Информатика: 7 класс. // Босова Л. Л., Босова А. Ю. – М.: БИНОМ, 2017. – 226 с.
Дополнительная литература:
- Босова Л. Л. Информатика: 7–9 классы. Методическое пособие. // Босова Л. Л., Босова А. Ю., Анатольев А. В., Аквилянов Н.А. – М.: БИНОМ, 2019. – 512 с.
- Босова Л. Л. Информатика. Рабочая тетрадь для 7 класса. Ч 1. // Босова Л. Л., Босова А. Ю. – М.: БИНОМ, 2019. – 160 с.
- Босова Л. Л. Информатика. Рабочая тетрадь для 7 класса. Ч 2. // Босова Л. Л., Босова А. Ю. – М.: БИНОМ, 2019. – 160 с.
- Гейн А. Г. Информатика: 7 класс. // Гейн А. Г., Юнерман Н. А., Гейн А.А. – М.: Просвещение, 2012. – 198 с.
Теоретический материал для самостоятельного изучения.
Компьютер человеку даёт большие возможности: создавать, копировать, передавать, хранить информацию различного рода. Данные в компьютере могут быть разными, это и документы, и рисунки, и программы, и музыка и многое другое. Так вот, все данные и программы в компьютере хранятся в виде файлов. Сегодня на уроке мы и узнаем, что такое файл.
Вам уже известно, что все программы и данные хранятся во внешней памяти компьютера в виде файлов. Файл – это поименованная область внешней памяти.
Файл характеризуется набором параметров: именем, размером, датой создания, датой последней модификации и атрибутами, которые используются операционной системой для его обработки: является ли файл системным, скрытым или предназначен только для чтения. Размер файла выражается в байтах.
Файлы, которые содержат данные – графические, текстовые называются документами, а файлы, содержащие прикладные программы, – файлами-приложениями.
Причём, файлы-документы создаются и обрабатываются с помощью файлов-приложений.
Имя файла состоит из двух частей, разделённых точкой: собственно имени файла и расширения. Имя файлу даёт пользователь, делать это нужно осмысленно, отражая в имени содержание файла. Имя файла может содержать до 255 символов национальных алфавитов и пробелы. Но в имени файлов есть и запрещённые символы, например, знак вопроса, звёздочка. Расширение имени файла задаётся программой автоматически, оно содержит 3–4 символа, которые записываются после точки.
Над файлами можно выполнять следующие действия: копирование, перемещение, переименование, удаление, поиск.
Если имя файла указано неточно, то можно использовать маску имени файла. Маска представляет собой последовательность букв, цифр и прочих допустимых символов.
На каждом компьютерном носителе информации может храниться большое количество файлов. Для удобства поиска информации файлы объединяют в группы, называемые каталогами или папками. Каталогам, как и файлам, дают собственные имена. Каждый каталог может содержать множество файлов и вложенных каталогов, может входить в состав другого каталога, тем самым, образуя определённую структуру хранения файлов. Её называют файловой структурой. Файловая структура – это совокупность файлов на диске и взаимосвязей между ними.
Любой информационный носитель операционной системы Windowsимеет корневой каталог, который создаётся без участия человека. Корневые каталоги имеют специальное обозначение с указанием имени соответствующего устройства и знака «\» (обратный слэш).
Простые файловые структуры могут использоваться для дисков с небольшим количеством файлов. В этом случае оглавление диска представляет собой линейную последовательность имён файлов.
Иерархические файловые структуры используются для хранения большого количества файлов. Иерархия – это расположение частей целого в порядке от высшего к низшим. Корневой каталог содержит файлы и вложенные каталоги первого уровня.
Графическое изображение иерархической файловой структуры называется деревом, его можно изображать вертикально и горизонтально.
Чтобы обратиться к нужному файлу, который хранится, например, на жёстком диске, можно указать путь к файлу. То есть имена всех каталогов от корневого до того, в котором находится файл. Такую запись называют полным именем файла.
Учитель работал в каталоге Д:\Уроки\7 класс \Практические работы. Затем перешёл в дереве каталогов на уровень выше, спустился в подкаталог Презентации и удалил из него файл Введение.ppt. Каково полное имя файла, который удалил учитель?
Учитель работал с каталогом: Д:\Уроки\7 класс\Практические работы. Поднявшись на один уровень вверх, он оказался в каталоге Д:\Уроки\7 класс. После этого учитель спустился в каталог Презентации, путь к файлам которого имеет вид: D:\Уроки\7 класс \Презентации. В этом каталоге он удалил файл Введение.ppt, полное имя которого Д:\Уроки\7 класс \Презентации\ Введение.ppt.
Итак, сегодня мы узнали, что такое файл, какое имя он может иметь, какие операции можно выполнять над файлами. Также познакомились с понятиями каталог, файловая структура диска.
Материал для углубленного изучения темы.
Файловый менеджер Double Commander.
Double Commander‑ бесплатный файловый менеджер с двухоконным интерфейсом. Программа работает на разных операционных системах: Windows, Linux, MAC OS.
В программу встроены инструменты для группового переименования файлов и синхронизации, все операции выполняются в фоновом режиме, реализована поддержка вкладок, встроен просмотр файлов, эскизов, работа с архивами, расширенный поиск файлов, функция приостановки файловых операций, имеется поддержка некоторых плагинов для TotalCommander и т. д.
Внешний вид DoubleCommader является традиционным для программ подобного типа. Сверху расположены панели инструментов, список дисков, вкладки, собственно, список файлов, внизу находится командная строка и кнопки для тех, кто еще не запомнил наиболее часто используемые файловые операции, но можно скрыть эту панель,
DoubleCommander имеет огромное количество настроек. Настроить можно практически каждый элемент окна, главное найти нужные галочки или поля ввода.
Работа с избранными папками осуществляется с помощью меню, выпадающего при нажатии на кнопку «*». Выглядит оно следующим образом:
Сверху перечислены папки, добавленные в избранные, а снизу два пункта меню для добавления/удаления папки из выбранной панели в список.
Что касается группового переименования, то интерфейс для него выглядит следующим образом:
При переименовании можно использовать регулярные выражения и различные поля вроде счетчика (чтобы добавлять к каждому последующему файлу свой номер), даты, времени создания файла.
В DoubleCommander есть возможность с помощью горячих клавиш (или пункта меню) копировать в буфер обмена имя файла или полный путь до него, Правда, это решается двумя горячими клавишами: сначала переходим к «редактированию пути» в заголовке панели, затем выделенный путь можно скопировать с помощью стандартной комбинации Ctrl+C. Панель быстрого фильтра, позволяет искать файлы/папки в текущей папке, а при необходимости скрыть все файлы и папки, не удовлетворяющие критерию поиска.
Для поиска файлов в DoubleCommander довольно удобный интерфейс. Есть возможность вынесения результатов поиска на панель.
Программа DoubleCommander создана коллективом разработчиков из России, которые стремятся создать файловый менеджер, аналогичный по функциональности TotalCommander. Программа активно развивается.
Разбор решения заданий тренировочного модуля.
№1.Тип задания: выделение цветом.
Укажите, какое из указанных ниже имён файлов удовлетворяет маске ?ese*ie.?t*
Так как маска – это последовательность букв, цифр и других, допустимых в именах файлов символов, среди которых встречаются следующие: «?» – означает ровно один последовательный символ, «*» – означает любую (в том числе и пустую) последовательность символов произвольной длины. Рассмотрев маску?ese*ie.?t*, вопросительный знак – это один символ, т.е. s, * – это последовательность символов произвольной длины, т.е. может подойти ответ первый и последний, т.к. * – это ещё и пустой символ. Но, рассматривая расширение, и также рассуждая, последний вариант ответа не подходит, потому что на втором месте стоит буква t. Следовательно, выделяем цветом первый вариант ответа.
Ответ: seseie.ttx
№2.Тип задания: восстановление последовательности элементов.
Восстановите полное имя файла.
Файл Онегин.doc хранится на жёстком диске в каталоге ПОЭЗИЯ, который является подкаталогом каталога ЛИТЕРАТУРА. В таблице приведены фрагменты полного имени файла:
Файл – это поименованная область внешней памяти.
Операции над файлами:
- Копирование
- Перемещение
- Переименование
- Удаление
- Поиск
Маска представляет собой последовательность букв, цифр и прочих допустимых символов, среди которых также могут встречаться следующие символы:
? – означает ровно один произвольный символ
* – означает любую последовательность символов, в том числе, и пустую.
Каталог – это поименованная совокупность файлов и подкаталогов.
Файловая структура – это совокупность файлов на диске и взаимосвязей между ними.
Простые файловые структуры могут использоваться для дисков с небольшим (до нескольких десятков) количеством файлов.
Иерархические файловые структуры используются для хранения большого (сотни и тысячи) количества файлов.
Графическое изображение иерархической файловой структуры называется деревом.
Последовательно записанные: путь к файлу и имя файла, составляют полное имя файла.
Основная литература:
1. Босова Л. Л. Информатика: 7 класс. // Босова Л. Л., Босова А. Ю. – М.: БИНОМ, 2017. – 226 с.
Дополнительная литература:
- Босова Л. Л. Информатика: 7–9 классы. Методическое пособие. // Босова Л. Л., Босова А. Ю., Анатольев А. В., Аквилянов Н.А. – М.: БИНОМ, 2019. – 512 с.
- Босова Л. Л. Информатика. Рабочая тетрадь для 7 класса. Ч 1. // Босова Л. Л., Босова А. Ю. – М.: БИНОМ, 2019. – 160 с.
- Босова Л. Л. Информатика. Рабочая тетрадь для 7 класса. Ч 2. // Босова Л. Л., Босова А. Ю. – М.: БИНОМ, 2019. – 160 с.
- Гейн А. Г. Информатика: 7 класс. // Гейн А. Г., Юнерман Н. А., Гейн А.А. – М.: Просвещение, 2012. – 198 с.
Теоретический материал для самостоятельного изучения.
Компьютер человеку даёт большие возможности: создавать, копировать, передавать, хранить информацию различного рода. Данные в компьютере могут быть разными, это и документы, и рисунки, и программы, и музыка и многое другое. Так вот, все данные и программы в компьютере хранятся в виде файлов. Сегодня на уроке мы и узнаем, что такое файл.
Вам уже известно, что все программы и данные хранятся во внешней памяти компьютера в виде файлов. Файл – это поименованная область внешней памяти.
Файл характеризуется набором параметров: именем, размером, датой создания, датой последней модификации и атрибутами, которые используются операционной системой для его обработки: является ли файл системным, скрытым или предназначен только для чтения. Размер файла выражается в байтах.
Файлы, которые содержат данные – графические, текстовые называются документами, а файлы, содержащие прикладные программы, – файлами-приложениями.
Причём, файлы-документы создаются и обрабатываются с помощью файлов-приложений.
Имя файла состоит из двух частей, разделённых точкой: собственно имени файла и расширения. Имя файлу даёт пользователь, делать это нужно осмысленно, отражая в имени содержание файла. Имя файла может содержать до 255 символов национальных алфавитов и пробелы. Но в имени файлов есть и запрещённые символы, например, знак вопроса, звёздочка. Расширение имени файла задаётся программой автоматически, оно содержит 3–4 символа, которые записываются после точки.
Над файлами можно выполнять следующие действия: копирование, перемещение, переименование, удаление, поиск.
Если имя файла указано неточно, то можно использовать маску имени файла. Маска представляет собой последовательность букв, цифр и прочих допустимых символов.
На каждом компьютерном носителе информации может храниться большое количество файлов. Для удобства поиска информации файлы объединяют в группы, называемые каталогами или папками. Каталогам, как и файлам, дают собственные имена. Каждый каталог может содержать множество файлов и вложенных каталогов, может входить в состав другого каталога, тем самым, образуя определённую структуру хранения файлов. Её называют файловой структурой. Файловая структура – это совокупность файлов на диске и взаимосвязей между ними.
Любой информационный носитель операционной системы Windowsимеет корневой каталог, который создаётся без участия человека. Корневые каталоги имеют специальное обозначение с указанием имени соответствующего устройства и знака «\» (обратный слэш).
Простые файловые структуры могут использоваться для дисков с небольшим количеством файлов. В этом случае оглавление диска представляет собой линейную последовательность имён файлов.
Иерархические файловые структуры используются для хранения большого количества файлов. Иерархия – это расположение частей целого в порядке от высшего к низшим. Корневой каталог содержит файлы и вложенные каталоги первого уровня.
Графическое изображение иерархической файловой структуры называется деревом, его можно изображать вертикально и горизонтально.
Чтобы обратиться к нужному файлу, который хранится, например, на жёстком диске, можно указать путь к файлу. То есть имена всех каталогов от корневого до того, в котором находится файл. Такую запись называют полным именем файла.
Учитель работал в каталоге Д:\Уроки\7 класс \Практические работы. Затем перешёл в дереве каталогов на уровень выше, спустился в подкаталог Презентации и удалил из него файл Введение.ppt. Каково полное имя файла, который удалил учитель?
Учитель работал с каталогом: Д:\Уроки\7 класс\Практические работы. Поднявшись на один уровень вверх, он оказался в каталоге Д:\Уроки\7 класс. После этого учитель спустился в каталог Презентации, путь к файлам которого имеет вид: D:\Уроки\7 класс \Презентации. В этом каталоге он удалил файл Введение.ppt, полное имя которого Д:\Уроки\7 класс \Презентации\ Введение.ppt.
Итак, сегодня мы узнали, что такое файл, какое имя он может иметь, какие операции можно выполнять над файлами. Также познакомились с понятиями каталог, файловая структура диска.
Материал для углубленного изучения темы.
Файловый менеджер Double Commander.
Double Commander‑ бесплатный файловый менеджер с двухоконным интерфейсом. Программа работает на разных операционных системах: Windows, Linux, MAC OS.
В программу встроены инструменты для группового переименования файлов и синхронизации, все операции выполняются в фоновом режиме, реализована поддержка вкладок, встроен просмотр файлов, эскизов, работа с архивами, расширенный поиск файлов, функция приостановки файловых операций, имеется поддержка некоторых плагинов для TotalCommander и т. д.
Внешний вид DoubleCommader является традиционным для программ подобного типа. Сверху расположены панели инструментов, список дисков, вкладки, собственно, список файлов, внизу находится командная строка и кнопки для тех, кто еще не запомнил наиболее часто используемые файловые операции, но можно скрыть эту панель,
DoubleCommander имеет огромное количество настроек. Настроить можно практически каждый элемент окна, главное найти нужные галочки или поля ввода.
Работа с избранными папками осуществляется с помощью меню, выпадающего при нажатии на кнопку «*». Выглядит оно следующим образом:
Сверху перечислены папки, добавленные в избранные, а снизу два пункта меню для добавления/удаления папки из выбранной панели в список.
Что касается группового переименования, то интерфейс для него выглядит следующим образом:
При переименовании можно использовать регулярные выражения и различные поля вроде счетчика (чтобы добавлять к каждому последующему файлу свой номер), даты, времени создания файла.
В DoubleCommander есть возможность с помощью горячих клавиш (или пункта меню) копировать в буфер обмена имя файла или полный путь до него, Правда, это решается двумя горячими клавишами: сначала переходим к «редактированию пути» в заголовке панели, затем выделенный путь можно скопировать с помощью стандартной комбинации Ctrl+C. Панель быстрого фильтра, позволяет искать файлы/папки в текущей папке, а при необходимости скрыть все файлы и папки, не удовлетворяющие критерию поиска.
Для поиска файлов в DoubleCommander довольно удобный интерфейс. Есть возможность вынесения результатов поиска на панель.
Программа DoubleCommander создана коллективом разработчиков из России, которые стремятся создать файловый менеджер, аналогичный по функциональности TotalCommander. Программа активно развивается.
Разбор решения заданий тренировочного модуля.
№1.Тип задания: выделение цветом.
Укажите, какое из указанных ниже имён файлов удовлетворяет маске ?ese*ie.?t*
Так как маска – это последовательность букв, цифр и других, допустимых в именах файлов символов, среди которых встречаются следующие: «?» – означает ровно один последовательный символ, «*» – означает любую (в том числе и пустую) последовательность символов произвольной длины. Рассмотрев маску?ese*ie.?t*, вопросительный знак – это один символ, т.е. s, * – это последовательность символов произвольной длины, т.е. может подойти ответ первый и последний, т.к. * – это ещё и пустой символ. Но, рассматривая расширение, и также рассуждая, последний вариант ответа не подходит, потому что на втором месте стоит буква t. Следовательно, выделяем цветом первый вариант ответа.
Ответ: seseie.ttx
№2.Тип задания: восстановление последовательности элементов.
Восстановите полное имя файла.
Файл Онегин.doc хранится на жёстком диске в каталоге ПОЭЗИЯ, который является подкаталогом каталога ЛИТЕРАТУРА. В таблице приведены фрагменты полного имени файла:
Операционная система должна предоставить в распоряжение пользователя набор операций для работы с файлами , реализованных через системные вызовы. Чаще всего при работе с файлом пользователь выполняет не одну, а несколько операций. Во-первых, нужно найти данные файла и его атрибуты по символьному имени, во-вторых, считать необходимые атрибуты файла в отведенную область оперативной памяти и проанализировать права пользователя на выполнение требуемой операции . Затем следует выполнить операцию, после чего освободить занимаемую данными файла область памяти. Рассмотрим в качестве примера основные файловые операции ОС Unix [Таненбаум, 2002].
- Создание файла , не содержащего данных. Смысл данного вызова - объявить, что файл существует, и присвоить ему ряд атрибутов . При этом выделяется место для файла на диске и вносится запись в каталог .
- Удаление файла и освобождение занимаемого им дискового пространства.
- Открытие файла . Перед использованием файла процесс должен его открыть. Цель данного системного вызова - разрешить системе проанализировать атрибуты файла и проверить права доступа к нему, а также считать в оперативную память список адресов блоков файла для быстрого доступа к его данным. Открытие файла является процедурой создания дескриптора или управляющего блока файла . Дескриптор (описатель) файла хранит всю информацию о нем. Иногда, в соответствии с парадигмой, принятой в языках программирования, под дескриптором понимается альтернативное имя файла или указатель на описание файла в таблице открытых файлов , используемый при последующей работе с файлом . Например, на языке Cи операция открытия файла fd=open( pathname ,flags,modes); возвращает дескриптор fd , который может быть задействован при выполнении операций чтения ( read(fd,buffer,count); ) или записи.
- Закрытие файла . Если работа с файлом завершена, его атрибуты и адреса блоков на диске больше не нужны. В этом случае файл нужно закрыть, чтобы освободить место во внутренних таблицах файловой системы.
- Позиционирование. Дает возможность специфицировать место внутри файла , откуда будет производиться считывание (или запись) данных, то есть задать текущую позицию.
- Чтение данных из файла . Обычно это делается с текущей позиции. Пользователь должен задать объем считываемых данных и предоставить для них буфер в оперативной памяти.
- Запись данных в файл с текущей позиции. Если текущая позиция находится в конце файла , его размер увеличивается, в противном случае запись осуществляется на место имеющихся данных, которые, таким образом, теряются.
Есть и другие операции , например переименование файла , получение атрибутов файла и т. д.
Существует два способа выполнить последовательность действий над файлами [Олифер, 2001].
В первом случае для каждой операции выполняются как универсальные, так и уникальные действия (схема stateless ). Например, последовательность операций может быть такой: open , read1 , close , . open , read2 , close , . open , read3 , close .
Альтернативный способ - это когда универсальные действия выполняются в начале и в конце последовательности операций, а для каждой промежуточной операции выполняются только уникальные действия. В этом случае последовательность вышеприведенных операций будет выглядеть так: open , read1 , . read2 , . read3 , close .
Большинство ОС использует второй способ, более экономичный и быстрый. Первый способ более устойчив к сбоям, поскольку результаты каждой операции становятся независимыми от результатов предыдущей операции ; поэтому он иногда применяется в распределенных файловых системах (например, Sun NFS ).
Используя перетаскивание.
Широко применяется в графических интерфейсах и буквально означает «тащи-и-бросай» или «drag-and-drop» по-английски. Чтобы его осуществить, надо открыть окно Проводника Windows с объектами для перетаскивания и рядом еще одно окно Проводника, куда вы хотите переместить данные. Удобнее всего, когда видны оба окна одновременно.
Щелкаете ЛКМ по файлу или папке, держа указатель мыши над выделенным объектом, нажимаете и удерживаете ЛКМ и перемещаете указатель мыши в соседнее окно Проводника, куда вы хотите перетащить объект. Когда перетаскиваемый объект будет над папкой назначения, отпускаете ЛКМ. Единственное, необходимо следить по значку перетаскиваемого объекта, что система собирается сделать, переместить или скопировать перетаскиваемый объект. Удержание при перетаскивании клавиши Shift указывает компьютеру, что необходимо переместить объект.
Общие сведения о файлах
Имена файлов
Файлы представляют собой абстрактные объекты. Их задача - хранить информацию, скрывая от пользователя детали работы с устройствами. Когда процесс создает файл , он дает ему имя. После завершения процесса файл продолжает существовать и через свое имя может быть доступен другим процессам.
Правила именования файлов зависят от ОС. Многие ОС поддерживают имена из двух частей (имя+расширение), например progr.c ( файл , содержащий текст программы на языке Си) или autoexec.bat ( файл , содержащий команды интерпретатора командного языка). Тип расширения файла позволяет ОС организовать работу с ним различных прикладных программ в соответствии с заранее оговоренными соглашениями. Обычно ОС накладывают некоторые ограничения, как на используемые в имени символы, так и на длину имени файла . В соответствии со стандартом POSIX, популярные ОС оперируют удобными для пользователя длинными именами (до 255 символов).
Типы файлов
Важный аспект организации файловой системы и ОС - следует ли поддерживать и распознавать типы файлов . Если да, то это может помочь правильному функционированию ОС, например не допустить вывода на принтер бинарного файла .
Основные типы файлов : регулярные (обычные) файлы и директории (справочники, каталоги ). Обычные файлы содержат пользовательскую информацию. Директории - системные файлы , поддерживающие структуру файловой системы. В каталоге содержится перечень входящих в него файлов и устанавливается соответствие между файлами и их характеристиками ( атрибутами ). Мы будем рассматривать директории ниже.
Напомним, что хотя внутри подсистемы управления файлами обычный файл представляется в виде набора блоков внешней памяти , для пользователей обеспечивается представление файла в виде линейной последовательности байтов. Такое представление позволяет использовать абстракцию файла при работе с внешними устройствами, при организации межпроцессных взаимодействий и т. д. Так, например, клавиатура обычно рассматривается как текстовый файл , из которого компьютер получает данные в символьном формате. Поэтому иногда к файлам приписывают другие объекты ОС, например специальные символьные файлы и специальные блочные файлы , именованные каналы и сокеты, имеющие файловый интерфейс. Эти объекты рассматриваются в других разделах данного курса.
Далее речь пойдет главным образом об обычных файлах.
Обычные (или регулярные) файлы реально представляют собой набор блоков (возможно, пустой) на устройстве внешней памяти , на котором поддерживается файловая система. Такие файлы могут содержать как текстовую информацию (обычно в формате ASCII), так и произвольную двоичную (бинарную) информацию.
Текстовые файлы содержат символьные строки, которые можно распечатать, увидеть на экране или редактировать обычным текстовым редактором.
Другой тип файлов - нетекстовые, или бинарные, файлы . Обычно они имеют некоторую внутреннюю структуру. Например, исполняемый файл в ОС Unix имеет пять секций: заголовок, текст, данные, биты реаллокации и символьную таблицу. ОС выполняет файл , только если он имеет нужный формат. Другим примером бинарного файла может быть архивный файл . Типизация файлов не слишком строгая.
Обычно прикладные программы, работающие с файлами , распознают тип файла по его имени в соответствии с общепринятыми соглашениями. Например, файлы с расширениями .c , .pas , .txt - ASCII-файлы, файлы с расширениями .exe - выполнимые, файлы с расширениями .obj , .zip - бинарные и т. д.
Атрибуты файлов
Кроме имени ОС часто связывают с каждым файлом и другую информацию, например дату модификации, размер и т. д. Эти другие характеристики файлов называются атрибутами . Список атрибутов в разных ОС может варьироваться. Обычно он содержит следующие элементы: основную информацию (имя, тип файла ), адресную информацию (устройство, начальный адрес, размер), информацию об управлении доступом (владелец, допустимые операции) и информацию об использовании (даты создания, последнего чтения, модификации и др.).
Список атрибутов обычно хранится в структуре директорий (см. следующую лекцию) или других структурах, обеспечивающих доступ к данным файла .
Функциональные клавиши при перетаскивании.
Если вы будете осуществлять операцию перетаскивания с нажатой клавишей Alt , то будет создан ярлык на объект. Перетаскивая с помощью ПКМ вы сможете выбрать, что вы хотите сделать: копировать, переместить или создать ярлык.
Операция перемещения папок и файлов
Довольно распространённый тип операций с файлами и каталогами. Часто возникает необходимость переместить файлы или каталоги в другое место на жестком диске компьютера. Перемещая папку, следует помнить, что переместятся и все находящиеся в ней файлы и каталоги. В случае переноса файла следует учитывать, что если он требуется для работы какой-либо программы, она перестанет работать, так как будет искать его на старом месте. Перемещать можно множеством способов, давайте рассмотрим несколько.
Введение
История систем управления данными во внешней памяти начинается еще с магнитных лент, но современный облик они приобрели с появлением магнитных дисков. До этого каждая прикладная программа сама решала проблемы именования данных и их структуризации во внешней памяти . Это затрудняло поддержание на внешнем носителе нескольких архивов долговременно хранящейся информации. Историческим шагом стал переход к использованию централизованных систем управления файлами . Система управления файлами берет на себя распределение внешней памяти , отображение имен файлов в адреса внешней памяти и обеспечение доступа к данным.
Файловая система - это часть операционной системы, назначение которой состоит в том, чтобы организовать эффективную работу с данными, хранящимися во внешней памяти , и обеспечить пользователю удобный интерфейс при работе с такими данными. Организовать хранение информации на магнитном диске непросто. Это требует, например, хорошего знания устройства контроллера диска, особенностей работы с его регистрами. Непосредственное взаимодействие с диском - прерогатива компонента системы ввода-вывода ОС, называемого драйвером диска. Для того чтобы избавить пользователя компьютера от сложностей взаимодействия с аппаратурой, была придумана ясная абстрактная модель файловой системы. Операции записи или чтения файла концептуально проще, чем низкоуровневые операции работы с устройствами.
Основная идея использования внешней памяти состоит в следующем. ОС делит память на блоки фиксированного размера, например, 4096 байт. Файл , обычно представляющий собой неструктурированную последовательность однобайтовых записей, хранится в виде последовательности блоков (не обязательно смежных); каждый блок хранит целое число записей. В некоторых ОС (MS-DOS) адреса блоков, содержащих данные файла , могут быть организованы в связный список и вынесены в отдельную таблицу в памяти. В других ОС (Unix) адреса блоков данных файла хранятся в отдельном блоке внешней памяти (так называемом индексе или индексном узле). Этот прием, называемый индексацией , является наиболее распространенным для приложений, требующих произвольного доступа к записям файлов . Индекс файла состоит из списка элементов, каждый из которых содержит номер блока в файле и сведения о местоположении данного блока. Считывание очередного байта осуществляется с так называемой текущей позиции, которая характеризуется смещением от начала файла . Зная размер блока, легко вычислить номер блока, содержащего текущую позицию. Адрес же нужного блока диска можно затем извлечь из индекса файла . Базовой операцией, выполняемой по отношению к файлу , является чтение блока с диска и перенос его в буфер , находящийся в основной памяти.
Файловая система позволяет при помощи системы справочников ( каталогов , директорий ) связать уникальное имя файла с блоками вторичной памяти, содержащими данные файла . Иерархическая структура каталогов , используемая для управления файлами , может служить другим примером индексной структуры. В этом случае каталоги или папки играют роль индексов, каждый из которых содержит ссылки на свои подкаталоги. С этой точки зрения вся файловая система компьютера представляет собой большой индексированный файл . Помимо собственно файлов и структур данных, используемых для управления файлами ( каталоги , дескрипторы файлов , различные таблицы распределения внешней памяти ), понятие " файловая система " включает программные средства , реализующие различные операции над файлами .
Перечислим основные функции файловой системы.
- Идентификация файлов . Связывание имени файла с выделенным ему пространством внешней памяти .
- Распределение внешней памяти между файлами . Для работы с конкретным файлом пользователю не требуется иметь информацию о местоположении этого файла на внешнем носителе информации. Например, для того чтобы загрузить документ в редактор с жесткого диска, нам не нужно знать, на какой стороне какого магнитного диска, на каком цилиндре и в каком секторе находится данный документ.
- Обеспечение надежности и отказоустойчивости. Стоимость информации может во много раз превышать стоимость компьютера.
- Обеспечение защиты от несанкционированного доступа.
- Обеспечение совместного доступа к файлам , так чтобы пользователю не приходилось прилагать специальных усилий по обеспечению синхронизации доступа.
- Обеспечение высокой производительности.
Иногда говорят, что файл - это поименованный набор связанной информации, записанной во вторичную память. Для большинства пользователей файловая система - наиболее видимая часть ОС. Она предоставляет механизм для онлайнового хранения и доступа как к данным, так и к программам для всех пользователей системы. С точки зрения пользователя, файл - единица внешней памяти , то есть данные, записанные на диск, должны быть в составе какого-нибудь файла .
Важный аспект организации файловой системы - учет стоимости операций взаимодействия с вторичной памятью. Процесс считывания блока диска состоит из позиционирования считывающей головки над дорожкой, содержащей требуемый блок, ожидания, пока требуемый блок сделает оборот и окажется под головкой, и собственно считывания блока. Для этого требуется значительное время (десятки миллисекунд). В современных компьютерах обращение к диску осуществляется примерно в 100 000 раз медленнее, чем обращение к оперативной памяти. Таким образом, критерием вычислительной сложности алгоритмов, работающих с внешней памятью , является количество обращений к диску.
В данной лекции рассматриваются вопросы структуры, именования, защиты файлов ; операции , которые разрешается производить над файлами ; организация файлового архива (полного дерева справочников). Проблемы выделения дискового пространства, обеспечения производительной работы файловой системы и ряд других вопросов, интересующих разработчиков системы, вы найдете в следующей лекции.
Операции копирования файлов и папок
Полезно иметь копии важных файлов, на случай повреждения или утраты оригинала. Так же иногда нужно иметь несколько вариантов одного файла. Операция копирования производится точно так же, как и перемещение, но в меню выбирается пункт «Копировать» или комбинация клавиш Ctrl + C . В результате в папке назначения окажется копия. Вставить копию можно в то же каталог, но под другим именем. В случае перетаскивания надо удерживать клавишу Ctrl .
Введение
История систем управления данными во внешней памяти начинается еще с магнитных лент, но современный облик они приобрели с появлением магнитных дисков. До этого каждая прикладная программа сама решала проблемы именования данных и их структуризации во внешней памяти . Это затрудняло поддержание на внешнем носителе нескольких архивов долговременно хранящейся информации. Историческим шагом стал переход к использованию централизованных систем управления файлами . Система управления файлами берет на себя распределение внешней памяти , отображение имен файлов в адреса внешней памяти и обеспечение доступа к данным.
Файловая система - это часть операционной системы, назначение которой состоит в том, чтобы организовать эффективную работу с данными, хранящимися во внешней памяти , и обеспечить пользователю удобный интерфейс при работе с такими данными. Организовать хранение информации на магнитном диске непросто. Это требует, например, хорошего знания устройства контроллера диска, особенностей работы с его регистрами. Непосредственное взаимодействие с диском - прерогатива компонента системы ввода-вывода ОС, называемого драйвером диска. Для того чтобы избавить пользователя компьютера от сложностей взаимодействия с аппаратурой, была придумана ясная абстрактная модель файловой системы. Операции записи или чтения файла концептуально проще, чем низкоуровневые операции работы с устройствами.
Основная идея использования внешней памяти состоит в следующем. ОС делит память на блоки фиксированного размера, например, 4096 байт. Файл , обычно представляющий собой неструктурированную последовательность однобайтовых записей, хранится в виде последовательности блоков (не обязательно смежных); каждый блок хранит целое число записей. В некоторых ОС (MS-DOS) адреса блоков, содержащих данные файла , могут быть организованы в связный список и вынесены в отдельную таблицу в памяти. В других ОС (Unix) адреса блоков данных файла хранятся в отдельном блоке внешней памяти (так называемом индексе или индексном узле). Этот прием, называемый индексацией , является наиболее распространенным для приложений, требующих произвольного доступа к записям файлов . Индекс файла состоит из списка элементов, каждый из которых содержит номер блока в файле и сведения о местоположении данного блока. Считывание очередного байта осуществляется с так называемой текущей позиции, которая характеризуется смещением от начала файла . Зная размер блока, легко вычислить номер блока, содержащего текущую позицию. Адрес же нужного блока диска можно затем извлечь из индекса файла . Базовой операцией, выполняемой по отношению к файлу , является чтение блока с диска и перенос его в буфер , находящийся в основной памяти.
Файловая система позволяет при помощи системы справочников ( каталогов , директорий ) связать уникальное имя файла с блоками вторичной памяти, содержащими данные файла . Иерархическая структура каталогов , используемая для управления файлами , может служить другим примером индексной структуры. В этом случае каталоги или папки играют роль индексов, каждый из которых содержит ссылки на свои подкаталоги. С этой точки зрения вся файловая система компьютера представляет собой большой индексированный файл . Помимо собственно файлов и структур данных, используемых для управления файлами ( каталоги , дескрипторы файлов , различные таблицы распределения внешней памяти ), понятие " файловая система " включает программные средства , реализующие различные операции над файлами .
Перечислим основные функции файловой системы.
- Идентификация файлов . Связывание имени файла с выделенным ему пространством внешней памяти .
- Распределение внешней памяти между файлами . Для работы с конкретным файлом пользователю не требуется иметь информацию о местоположении этого файла на внешнем носителе информации. Например, для того чтобы загрузить документ в редактор с жесткого диска, нам не нужно знать, на какой стороне какого магнитного диска, на каком цилиндре и в каком секторе находится данный документ.
- Обеспечение надежности и отказоустойчивости. Стоимость информации может во много раз превышать стоимость компьютера.
- Обеспечение защиты от несанкционированного доступа.
- Обеспечение совместного доступа к файлам , так чтобы пользователю не приходилось прилагать специальных усилий по обеспечению синхронизации доступа.
- Обеспечение высокой производительности.
Иногда говорят, что файл - это поименованный набор связанной информации, записанной во вторичную память. Для большинства пользователей файловая система - наиболее видимая часть ОС. Она предоставляет механизм для онлайнового хранения и доступа как к данным, так и к программам для всех пользователей системы. С точки зрения пользователя, файл - единица внешней памяти , то есть данные, записанные на диск, должны быть в составе какого-нибудь файла .
Важный аспект организации файловой системы - учет стоимости операций взаимодействия с вторичной памятью. Процесс считывания блока диска состоит из позиционирования считывающей головки над дорожкой, содержащей требуемый блок, ожидания, пока требуемый блок сделает оборот и окажется под головкой, и собственно считывания блока. Для этого требуется значительное время (десятки миллисекунд). В современных компьютерах обращение к диску осуществляется примерно в 100 000 раз медленнее, чем обращение к оперативной памяти. Таким образом, критерием вычислительной сложности алгоритмов, работающих с внешней памятью , является количество обращений к диску.
В данной лекции рассматриваются вопросы структуры, именования, защиты файлов ; операции , которые разрешается производить над файлами ; организация файлового архива (полного дерева справочников). Проблемы выделения дискового пространства, обеспечения производительной работы файловой системы и ряд других вопросов, интересующих разработчиков системы, вы найдете в следующей лекции.
Групповые операции с файлами и папками
Для облегчения работы человека существует возможность производить открытие, перемещение, копирование и удаление сразу с группой объектов. Для этого необходимо указать системе нужные нам для операции объекты. Осуществляется выделение объектов точно так же, как мы выделяли одиночный объект, но с использование функциональных клавиш.
Выделение произвольной группы файлов и папок производится щелчком ЛКМ по нужным объектам с нажатой клавишей Ctrl . Выделенные объекты подсвечиваются цветом.
Для выделения расположенных подряд папок или файлов, сначала выделяется первый нужный объект щелчком ЛКМ и потом, удерживая клавишу Shift на клавиатуре, выделяется последний.
Выделить все в текущем каталоге можно в меню Проводника «Правка» ⇒ «Выделить все» или комбинация клавиш Ctrl + A .
Если необходимо выделить все кроме некоторых, то выделять все нужные с помощью Ctrl + C будет очень долго, гораздо быстрее пойти от противного, выделить ненужные объекты с помощью Ctrl + C и выбрать в меню пункт «Правка» ⇒ «Обратить выделение». Альтернативный вариант это выделить все объекты Ctrl + A и снять выделение, с ненужных объектов, щелкая по ним с нажатой клавишей Ctrl .
Еще один способ выделения с помощью перемещения мыши. Нужно нажать и удерживать ЛКМ на свободном месте и перемещать указатель. Появившаяся рамка показывает, какие объекты будут выделены, когда вы отпустите ЛКМ. Отредактировать получившееся выделение можно удерживая клавишу Ctrl .
Снять выделение, сделанное любым способом можно щелкнув мышью на свободном месте. Дальнейшие операции над группой файлов и папок не отличаются от описанных ранее способов с одиночными объектами.
Операция переименования папок и файлов
Все объекты на жестком диске компьютера имеют свои имена уникальные внутри одного каталога. Имена можно менять произвольным образом любое количество раз, главное соблюдать требования файловой системы к ним. В случае ввода недопустимого имени компьютер выведет предупреждение об этом.
Для переименования необходимо выделить нужный объект одиночным щелчком ЛКМ чтобы он под светился цветом и после небольшой задержки произвести по нему еще один клик ЛКМ. Имя должно выделиться синим, теперь можно ввести на клавиатуре новое имя и щелкнуть ЛКМ на свободном месте в окне Проводника или нажать на клавиатуре клавишу Enter .
Альтернативный вариант переименования файлов и папок предполагает использование всплывающего контекстного меню Проводника. Щелкнете на объекте ПКМ и выберете пункт «Переименовать» дальнейшие действия как описано выше.
Последний способ переименовать объект задействует меню Проводника. Выделите нужный файл или папку щелчком ЛКМ и в меню Проводника выберите «Файл» ⇒ «Переименовать», а дальше все как в других способах.
Операция удаления папок и файлов
Операционная система Windows предоставляет несколько способов удалить ненужные больше данные. Можно выделить объект щелчком ЛКМ и нажать клавишу Delete (Del) и подтвердить действие, нажав в появившемся окне кнопку «Да» или клавишу Enter на клавиатуре.
Другой способ удаления задействует контекстное меню. Достаточно щелкнуть на объекте ПКМ и выбрать пункт «Удалить» и подтвердить свой намерения. Можно удалить данные через меню Проводника, достаточно выделить объект ЛКМ и в меню Проводника выбрать «Файл» ⇒ «Удалить» и сделать подтверждение.
Последний способ использует метод «drag-and-drop» для удаления файлов и папок. Щелкаете на объекте ЛКМ и удерживая ее тащите его на иконку «Корзины» расположенную на рабочем столе.
Следует помнить, что удаляя папку, вы удаляете все ее содержимое, включая под папки.
В результате удаления любым из перечисленных способов, при настройках системы по умолчанию, все удаленные данные оказываются в «Корзине». Это специальная выделенная область, на жестком диске компьютера, предназначенная для временного хранения удаленных данных перед их полным удалением из системы. Просмотреть ее содержимое можно открыв иконку «Корзина» на рабочем столе компьютера. Восстановить случайно удаленный файл или папку, можно найдя их в «Корзине», щелкнув по нему ПКМ и выбрав в контекстном меню «Восстановить». Настроить параметры работы «Корзины» можно щелкнув ПКМ по ее значку на рабочем столе и выбрав пункт «Свойства».
Так же недавние действия в Проводнике Windows можно отменить в меню «Правка» ⇒ «Отменить» или комбинация клавиш Ctrl + Z .
Если вы точно уверенны, что удаляемые объекты вам больше не нужны, можно удерживать клавишу Shift во время операции удаления, тогда объекты будут удалены окончательно и из корзины их восстановить не получится. Будьте осторожны с данным способом.
Мы рассмотрели стандартные операции, но иногда компьютер сообщает, что невозможно удалить файл или папку по разным причинам. Как быть в такой ситуации, подробно рассказано в этом уроке.
Операция создания папок и файлов
Создать папку очень просто, достаточно открыть Проводник в нужном месте жесткого диска, щелкнуть на свободном месте ПКМ и выбрать в появившемся контекстном меню пункт «Создать» ⇒ «Папку», ввести ее имя и нажать Enter или кликнуть по свободному месту.
С файлами ситуация немного другая. Обычно они создаются непосредственно в программе, которая с ними работает. Например, текстовый файл в программе «Блокнот», а рисунки в графическом редакторе Paint установленным в системе по умолчанию. Однако вы можете пойти другим путем и создать пустой файл некоторых типов, не запуская программу для работы с ними.
Щелкните ПКМ на свободном месте в Проводнике и выберите в контекстном меню «Создать» и нужный тип файла, например «Текстовый документ», введите на клавиатуре его имя и нажмите клавишу Enter . Будет создан пустой файл, если его открыть, то запуститься программа для работы с этим типов файлов.
Такой способ может быть удобен, если вы находитесь в нужном каталоге, где вы хотите создать новый файл, так как будет быстрее, чем запустить саму программу, а потом в диалоге сохранения искать нужную директорию для сохранения.
Все то же самое можно сделать, используя меню Проводника, достаточно находясь в нужной директории и не имея выделенных объектов зайти в меню «Файл» ⇒ «Создать» и выбрать нужный тип документа, например папку или архив.
Мы рассмотрели основные операции с файлами и папками в Windows и их выполнение не должно для вас представлять трудностей, главное быть внимательным. Однако рекомендуем создать тестовую папку и потренироваться так сказать «на кошках».
Директории. Логическая структура файлового архива
Количество файлов на компьютере может быть большим. Отдельные системы хранят тысячи файлов , занимающие сотни гигабайт дискового пространства. Эффективное управление этими данными подразумевает наличие в них четкой логической структуры. Все современные файловые системы поддерживают многоуровневое именование файлов за счет наличия во внешней памяти дополнительных файлов со специальной структурой - каталогов (или директорий ).
Каждый каталог содержит список каталогов и/или файлов , содержащихся в данном каталоге . Каталоги имеют один и тот же внутренний формат, где каждому файлу соответствует одна запись в файле директории (см., например, рис.11.3).
Число директорий зависит от системы. В ранних ОС имелась только одна корневая директория , затем появились директории для пользователей (по одной директории на пользователя). В современных ОС используется произвольная структура дерева директорий .
Таким образом, файлы на диске образуют иерархическую древовидную структуру (см. рис. 11.4).
Существует несколько эквивалентных способов изображения дерева. Структура перевернутого дерева, приведенного на рис. 11.4, наиболее распространена. Верхнюю вершину называют корнем. Если элемент дерева не может иметь потомков, он называется терминальной вершиной или листом (в данном случае является файлом ). Нелистовые вершины - справочники или каталоги содержат списки листовых и нелистовых вершин. Путь от корня к файлу однозначно определяет файл .
Подобные древовидные структуры являются графами, не имеющими циклов. Можно считать, что ребра графа направлены вниз, а корень - вершина , не имеющая входящих ребер. Как мы увидим в следующей лекции, связывание файлов , которое практикуется в ряде операционных систем, приводит к образованию циклов в графе.
Внутри одного каталога имена листовых файлов уникальны. Имена файлов , находящихся в разных каталогах , могут совпадать. Для того чтобы однозначно определить файл по его имени (избежать коллизии имен), принято именовать файл так называемым абсолютным или полным именем (pathname), состоящим из списка имен вложенных каталогов , по которому можно найти путь от корня к файлу плюс имя файла в каталоге , непосредственно содержащем данный файл . То есть полное имя включает цепочку имен - путь к файлу , например /usr/games/doom . Такие имена уникальны. Компоненты пути разделяют различными символами: "/" (слэш) в Unix или обратными слэшем в MS-DOS (в Multics - ">"). Таким образом, использование древовидных каталогов минимизирует сложность назначения уникальных имен.
Указывать полное имя не всегда удобно, поэтому применяют другой способ задания имени - относительный путь к файлу . Он использует концепцию рабочей или текущей директории , которая обычно входит в состав атрибутов процесса , работающего с данным файлом . Тогда на файлы в такой директории можно ссылаться только по имени, при этом поиск файла будет осуществляться в рабочем каталоге . Это удобнее, но, по существу, то же самое, что и абсолютная форма.
Для получения доступа к файлу и локализации его блоков система должна выполнить навигацию по каталогам . Рассмотрим для примера путь /usr/linux/progr.c . Алгоритм одинаков для всех иерархических систем. Сначала в фиксированном месте на диске находится корневая директория . Затем находится компонент пути usr , т. е. в корневой директории ищется файл /usr . Исследуя этот файл , система понимает, что данный файл является каталогом , и блоки его данных рассматривает как список файлов и ищет следующий компонент linux в нем. Из строки для linux находится файл , соответствующий компоненту usr/linux/ . Затем находится компонент progr.c , который открывается, заносится в таблицу открытых файлов и сохраняется в ней до закрытия файла .
Отклонение от типовой обработки компонентов pathname может возникнуть в том случае, когда этот компонент является не обычным каталогом с соответствующим ему индексным узлом и списком файлов , а служит точкой связывания (принято говорить "точкой монтирования") двух файловых архивов. Этот случай рассмотрен в следующей лекции.
Многие прикладные программы работают с файлами , находящимися в текущей директории , не указывая явным образом ее имени. Это дает пользователю возможность произвольным образом именовать каталоги , содержащие различные программные пакеты. Для реализации этой возможности в большинстве ОС, поддерживающих иерархическую структуру директорий , используется обозначение " ." - для текущей директории и " . ." - для родительской.
Разделы диска. Организация доступа к архиву файлов.
Задание пути к файлу в файловых системах некоторых ОС отличается тем, с чего начинается эта цепочка имен.
В современных ОС принято разбивать диски на логические диски (это низкоуровневая операция), иногда называемые разделами (partitions). Бывает, что, наоборот, объединяют несколько физических дисков в один логический диск (например, это можно сделать в ОС Windows NT). Поэтому в дальнейшем изложении мы будем игнорировать проблему физического выделения пространства для файлов и считать, что каждый раздел представляет собой отдельный (виртуальный) диск. Диск содержит иерархическую древовидную структуру, состоящую из набора файлов , каждый из которых является хранилищем данных пользователя, и каталогов или директорий (то есть файлов , которые содержат перечень других файлов , входящих в состав каталога ), необходимых для хранения информации о файлах системы.
В некоторых системах управления файлами требуется, чтобы каждый архив файлов целиком располагался на одном диске (разделе диска). В этом случае полное имя файла начинается с имени дискового устройства, на котором установлен соответствующий диск (буквы диска). Например, c:\util\nu\ndd.exe . Такой способ именования используется в файловых системах DEC и Microsoft.
В других системах ( Multics ) вся совокупность файлов и каталогов представляет собой единое дерево. Сама система, выполняя поиск файлов по имени, начиная с корня, требовала установки необходимых дисков.
В ОС Unix предполагается наличие нескольких архивов файлов , каждый на своем разделе, один из которых считается корневым. После запуска системы можно "смонтировать" корневую файловую систему и ряд изолированных файловых систем в одну общую файловую систему.
Технически это осуществляется с помощью создания в корневой файловой системе специальных пустых каталогов (см. также следующую лекцию). Специальный системный вызов mount ОС Unix позволяет подключить к одному из этих пустых каталогов корневой каталог указанного архива файлов . После монтирования общей файловой системы именование файлов производится так же, как если бы она с самого начала была централизованной. Задачей ОС является беспрепятственный проход точки монтирования при получении доступа к файлу по цепочке имен. Если учесть, что обычно монтирование файловой системы производится при загрузке системы, пользователи ОС Unix обычно и не задумываются о происхождении общей файловой системы.
Файлы и папки в операционной системе Windows представляют собой специальные объекты с набором определенных свойств, служащие для удобного структурирования информации в файловой системе компьютера. Такое логическое разделение информации на жестком диске компьютера сильно облегчает человеку быстрый доступ к нужным в данный момент данным.
Подробнее ознакомиться, как устроен файл можно здесь, а про папки почитать тут. Новичку важно усвоить, что одни и те же действия в компьютере часто можно выполнить несколькими способами и это в полной мере относится к операциям с каталогами и файлами. Давайте разберемся, какие бывают операции с данными на жестком диске компьютера и способы их выполнения. Мы будем описывать работу в штатном Проводнике Windows при настройках по умолчанию.
Используя буфер обмена.
Выделить объект щелчком ЛКМ, чтобы он подсветился цветом. Дальше есть несколько вариантов, как можно поступить:
- щелкнуть по нему ПКМ и выбрать пункт «Вырезать»
- нажать комбинацию клавиш Ctrl + X
- нажать кнопку «Вырезать» на панели инструментов или в меню Проводника выбрать «Правка» ⇒ «Вырезать». В зависимости от версии операционной системы вид, расположение меню и наличие кнопок несколько различается.
В результате этих действий объект станет блеклым и поместится в буфер обмена операционной системы Windows. Теперь надо открыть папку на жестком диске, куда вы хотите переместить объект и выполнить одно из действий:
- щелкнуть на свободном месте ПКМ и выбрать пункт «Вставить»
- нажать комбинацию клавиш Ctrl + V
- нажать кнопку «Вставить» на панели инструментов или в меню Проводника выбрать «Правка» ⇒ «Вставить». В зависимости от версии операционной системы вид, расположение меню и наличие кнопок несколько различается.
Поздравляем, вы переместили ваш файл или папку в другое место. Тот же самый результат можно получить, если выделить объект и в меню Проводника выбрать «Правка» ⇒ «Переместить в папку» в открывшемся окне указать папку назначения и нажать «Переместить».
Читайте также: