Что называется навигацией по файловой системе

Обновлено: 05.07.2024

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

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

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

Организация программного обеспечения файловой системы


Рис. 7.6. Организация программного обеспечения файловой системы

На нижнем уровне драйверы устройств непосредственно связаны с периферийными устройствами или их котроллерами либо каналами. Драйвер устройства отвечает за начальные операции ввода-вывода устройства и за обработку завершения запроса ввода-вывода. При файловых операциях контролируемыми устройствами являются дисководы и стримеры (накопители на МЛ). Драйверы устройств рассматриваются как часть операционной системы.

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

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

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

7.13. Организация файлов и доступ к ним

Типы, именование и атрибуты файлов

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

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

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

Специальные файлы – это фиктивные файлы, ассоциированные с устройствами ввода-вывода, которые используются для унификации механизма доступа к последовательным устройствам ввода-вывода, таким как терминалы, принтеры и др. (например, MS- DOS рассматривает монитор и клавиатуру как файлы со стандартным именем con – консоль , а принтер – как файл prn ). Блочные специальные файлы используются для моделирования дисков.

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

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

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

Во многих операционных системах имя файла состоит из двух частей, разделенных точкой. Часть имени после точки называется расширением файла и обычно означает его тип. Так, в MS- DOS имя файла может содержать от 1 до 8 символов, а расширение от 0 (отсутствует) до 3.

В некоторых ОС, например, Windows , расширение указывает на программу, создавшую файл . Другие ОС, например, UNIX , не принуждают пользователя строго придерживаться расширений. Некоторые типичные расширения файлов приведены ниже.

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

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

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

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

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

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

Значения атрибутов файлов могут содержаться в каталогах, как это сделано, например, в MS- DOS (рис. 7.7). Другим вариантом является размещение атрибутов в специальных таблицах, в этом случае в каталогах содержатся ссылки на эти таблицы.

Атрибуты файлов MS DOS

Логическая организация файла

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

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

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

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

Известно пять фундаментальных способов организации файлов [10]:

  • смешанный файл,
  • последовательный файл ,
  • индексно- последовательный файл ,
  • индексируемый файл,
  • файл прямого доступа.

При выборе способа организации файла нужно учитывать несколько критериев:

  • быстрота доступа,
  • легкость обновления,
  • экономность хранения,
  • простота обслуживания,
  • надежность.

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

Смешанный файл

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

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

Последовательный файл

Одно определенное поле (или несколько полей) называется ключевым. Оно однозначно идентифицирует запись , так как это поле различно для каждой записи. Более того, записи сохраняются в "ключевой" последовательности: в алфавитном порядке для текстового ключа и в числовом – для числового. Последовательные файлы часто используются пакетными приложениями и обычно являются оптимальным вариантом, если эти приложения выполняют обработку всех записей. Удобно и то, что такой файл можно хранить как на ленте, так и на магнитном диске.

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

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

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

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

Индексно-последовательный файл

Для поиска нужной записи по ее ключу сначала выполняется поиск в индексном файле. После того как в нем найдено наибольшее значение ключа, которое не превышает искомое, продолжается поиск в главном файле. Например, пусть последовательный файл (главный) содержит 1 млн записей. Для поиска определенного ключевого значения необходимо в среднем 0,5 млн операций доступа к записям. Если создать индексный файл , содержащий 1000 элементов, то потребуется в среднем 500 операций доступа к индексному файлу, после чего еще нужно в среднем 500 операций доступа к главному файлу. В результате средняя длина поиска уменьшилась с 0,5 млн до 1000. Еще лучшего результата можно достичь, используя многоуровневую индексацию. При этом нижний уровень индексного файла рассматривается как последовательный файл , для которого создается индексный файл верхнего уровня.

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

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

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

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

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

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

5.3. Операции с файловой структурой

К основным операциям с файловой структурой относятся:

  • навигация по файловой структуре;
  • запуск программ и открытие документов;
  • создание папок;
  • копирование файлов и папок;
  • перемещение файлов и папок;
  • удаление файлов и папок;
  • переименование файлов и папок;
  • в создание ярлыков.

5.3.1. Окно папки Мой компьютер

При таком подходе к операциям с файловой структурой следует иметь в виду несколько замечаний.

2. При перетаскивании значков объектов между папками, принадлежащими одному диску, автоматически выполняется перемещение объектов. Если нужно выполнить копирование, используют специальное перетаскивание.

3. При перетаскивании значков объектов между папками, принадлежащими разным дискам, автоматически выполняется копирование объектов. Если нужно выполнить перемещение, используют специальное перетаскивание.

5.3.2. Программа Проводник

Работа с файловой системой в окнах папок не вполне удобна, но для этой цели есть и более мощное средство — программа Проводник.

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


Рис. 5.3. Окно программы Проводник

Навигация по файловой структуре. Цель навигации состоит в обеспечении доступа к нужной папке и ее содержимому. Мы специально не говорим о том, что цель навигации — это поиск нужных файлов и папок, поскольку для этой операции есть специальнsые средства.

Навигацию по файловой структуре выполняют на левой панели Проводника, на которой показана структура папок. Папки могут быть развернуты или свернуты, а также раскрыты или закрыты. Если папка имеет вложенные папки, то на левой панели рядом с папкой отображается узел, отмеченный знаком “+”. Щелчок на узле разворачивает папку, при этом значок узла меняется на “-”. Таким же образом папки и сворачиваются.

Для того чтобы раскрыть папку, надо щелкнуть на ее значке. Содержимое раскрытой папки отображается на правой панели. Одна из папок на левой панели раскрыта всегда. Закрыть папку щелчком на ее значке невозможно — она закроется автоматически при раскрытии любой другой папки.

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

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

Первая задача — найти и раскрыть папку-источник, чтобы на правой панели был виден копируемый объект. Вторая задача — найти на левой панели папку-приемник, но раскрывать ее не надо. Далее объект перетаскивают с правой панели на левую и помещают на значок папки-приемника. Эта операция требует аккуратности, поскольку попасть одним значком точно на другой не всегда просто. Для контроля точности попадания надо следить за названием папки-приемника. В тот момент, когда наведение выполнено правильно, подпись под значком меняет цвет, и кнопку мыши можно отпускать.

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

Удаление файлов и папок. Работа начинается с навигации. На левой панели открывают папку, содержащую удаляемый объект, а на правой панели выделяют нужный объект (или группу объектов).

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

Второй способ (с использованием мастера) менее нагляден, но во многих случаях более удобен. Мастерами в системе Windows называют специальные программы, работающие в режиме диалога с пользователем. Диалог строится по принципу “запрос — ответ”. Если на все запросы от программы даны корректные ответы, программа автоматически выполнит черновую работу.

1. Для того чтобы запустить Мастер создания ярлыка, надо щелкнуть правой кнопкой мыши в окне той папки, в которой создается ярлык объекта.

3. В диалоговом окне мастера имеется командная строка, в поле которой следует ввести путь доступа к объекту, для которого создается ярлык, например С:\Windows\Саlс.ехе — путь доступа к стандартной программе Калькулятор. Разумеется, пользователь не может помнить пути доступа ко всем нужным объектам, поэтому ввод адреса автоматизирован. Для этого служит командная кнопка Обзор.

4. При щелчке на кнопке Обзор открывается диалоговое окно Обзор. Это стандартное средство для установления пути доступа к объекту.

В поле Папка выбирают нужный диск, на котором расположен искомый файл, — в нашем случае это диск С:.

В рабочей области выбирают папку, в которой расположен файл, — в нашем случае это папка Windows. Раскрывают эту папку. Если папка раскрыта по ошибке и в ней нет искомого объекта, можно вернуться на шаг назад щелчком на кнопке На один уровень вверх.

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

5. Переход к очередному диалоговому окну мастера выполняют щелчком на командной кнопке Далее.

6. В очередном окне мастера вводят название ярлыка, например: Калькулятор. Если это последнее окно мастера, то кнопка Далее сменяется кнопкой Готово. Щелчок на этой кнопке приводит к выполнению заданной операции.

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

5.3.3. Приемы повышения эффективности в работе с файловой структурой

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

Использование буфера обмена для работы с объектами. Система Windows создает и обслуживает на компьютере невидимую для пользователя область памяти, называемую буфером обмена. Этой областью можно и нужно уметь пользоваться.

Принцип работы с буфером обмена очень прост:

1. Открываем папку-источник. Выделяем щелчком нужный объект.

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

3. Открываем папку-приемник и помещаем в нее объект из буфера обмена.

Три указанные операции (Копировать, Вырезать и Вставить) можно выполнять разными способами. Классический прием состоит в использовании пункта Правка в строке меню, но более удобно пользоваться одноименными командными кнопками панели инструментов.

Самый же эффективный способ работы с буфером обмена состоит в использовании комбинаций клавиш клавиатуры:

Ctrl + С — копировать в буфер;

Ctrl +Х — вырезать в буфер;

Ctrl + V — вставить из буфера.

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

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

Групповое выделение объектов. Для многих операций (удаление, копирование, перемещение и т. п.) требуется выделить не один объект, а несколько. До сих пор мы использовали для выделения щелчок мыши, но он позволяет выделить только один объект. Для группового выделения при щелчке надо держать нажатой клавишу Shift или Ctrl.

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

Если выделяемые объекты расположены подряд, то можно воспользоваться клавишей Shift. В этом случае при нажатой клавише щелкают на первом выделяемом объекте группы и на последнем. Все промежуточные объекты выделяются автоматически. Для того чтобы использовать этот прием группового выделения, иногда бывает полезно предварительно упорядочить (отсортировать) объекты, представленные в окне.

Представление объектов. В системе Windows можно управлять тем, как представляются объекты в окнах папок или на правой панели программы Проводник. Существует четыре типа представления объектов:

  • Крупные значки
  • Мелкие значки
  • Список
  • Таблица

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

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

Режим Мелкие значки применяют, когда количество объектов в папке велико и крупные значки не помещаются в окне.

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

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

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

Все методы сортировки работают в восходящем порядке. Файлы сортируются по именам от А до Z или от А до Я; по размерам — от 0 до 9; по датам — от ранних до более поздних. Однако, если объекты в окне отображаются в виде таблицы, то возможно проведение сортировки в нисходящем порядке. Особенность режима таблицы состоит в том, что каждый столбец имеет заголовок. Этот заголовок обладает свойствами командной кнопки. При первом щелчке на заголовке столбца происходит сортировка объектов по данному столбцу в восходящем порядке, при повторном щелчке — в нисходящем порядке.

<filesystem> Заголовок реализует техническую спецификацию файловой системы C++ ISO/IEC TS 18822:2015 (окончательный вариант черновика: ISO/IEC JTC 1/SC 22/WG 21 N4100) и имеет типы и функции, позволяющие создавать независимый от платформы код для навигации по файловой системе. поскольку это межплатформенное приложение, оно содержит интерфейсы api, которые не относятся к Windowsным системам. Например, is_fifo(const path&) всегда возвращает значение false в Windows.

Обзор

Используйте <filesystem> API для следующих задач:

выполнение итерации по файлам и каталогам в указанном пути;

получение сведений о файлах, включая время создания, размер, расширение и корневой каталог;

составление, разделение и сравнение путей;

Создание, копирование и удаление каталогов

копирование и удаление файлов.

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

Создание и составление путей

Пути в Windows (начиная с XP) изначально хранятся в Юникоде. path Класс автоматически выполняет все необходимые преобразования строк. Он принимает аргументы как для широких, так и для узких символьных массивов, а также для std::string std::wstring типов, отформатированных как UTF8 или UTF16. Класс path также автоматически нормализует разделители путей. В аргументах конструктора в качестве разделителя каталогов можно использовать одиночную косую черту. этот разделитель позволяет использовать одни и те же строки для хранения путей в Windows и UNIX средах:

Для объединения двух путей можно использовать перегруженные операторы / и /= , которые аналогичны операторам + и += в std::string и std::wstring . path Объект будет удобным образом предоставлять разделители, если это не так.

Проверка путей

Класс Path имеет несколько методов, возвращающих сведения о различных частях пути. Эта информация отличается от сведений о сущности файловой системы, на которую может ссылаться. Можно получить корень, относительный путь, имя файла, расширение файла и другие сведения. Можно выполнять итерацию по объекту path для проверки всех папок в иерархии. В следующем примере показано, как выполнить итерацию по объекту пути. И, как получить сведения о его частях.

Код создает следующие выходные данные:

Сравнение путей

Класс path перегружает операторы сравнения на равенство как std::string и std::wstring . При сравнении двух путей необходимо выполнить сравнение строк после нормализации разделителей. Если пропущена Замыкающая косая черта (или обратная косая черта), она не добавляется и влияет на сравнение. В следующем примере показано, как выполняется сравнение значений пути:

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

Преобразование между типами пути и строки

Объект path может быть неявно преобразован в std::wstring или std::string . Это означает, что можно передать путь к таким функциям wofstream::open , как, как показано в следующем примере:

Итерация по каталогам и файлам

<filesystem> Заголовок предоставляет directory_iterator тип для итерации по отдельным каталогам и recursive_directory_iterator класс для рекурсивного прохода по каталогу и его подкаталогам. После создания итератора путем передачи ему объекта path итератор указывает на первое значение directory_entry в пути. Создайте конечный итератор путем вызова конструктора по умолчанию.

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




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

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

Для дисков с небольшим количеством файлов (до нескольких десятков) может использоваться одноуровневая файловая система , когда каталог (оглавление диска) представляет собой линейную последовательность имен файлов (табл. 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. В окне Мой компьютер находятся значки имеющихся в компьютере дисков. Активизация (щелчок) значка любого диска выводит в левой части окна информацию о его емкости, занятой и свободной частях.

Мы разобрались, что такое файлы и папки, какого они могут быть размера. Теперь научимся перемещаться по ним. Для этого будем использовать Проводник, который является основным средством навигации по жесткому диску в операционной системе Windows XP. Есть и более удобные средства. Это специализированные файловые менеджеры, которые подробно будут рассмотрены в гл. 18.

Самый простой способ вызвать Проводник (Windows Explorer) – дважды щелкнуть кнопкой мыши на значке Мой компьютер, расположенном на Рабочем столе (см. гл. 10).

Откроется окно, изображенное на рис. 11.1. Условно его можно разделить на несколько частей: панель инструментов (см. гл. 8) вверху, панель быстрого доступа к папкам компьютера, а также с дополнительной информацией о выбранном объекте слева и основную часть, где расположены папки и файлы, справа.


Рис. 11.1. Мой компьютер – начальное окно Проводника

Последняя часть состоит из трех областей.

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

• Жесткие диски – список логических дисков, расположенных на одном (или более) жестком диске. С помощью значков этой области вы можете получить доступ непосредственно к винчестеру (см. гл. 3).

• Устройства со съемными носителями – приводы, дисководы для дискет (уже давно не устанавливаются на ноутбуках), flash-приводы и т. д. Работать с ними можно почти так же, как и с жестким диском, правда, иногда с некоторыми ограничениями. Например, вы не сможете произвести запись на компакт-диск, не воспользовавшись специально предназначенной для этого программой.

Для примера откроем логический диск (Локальный диск (С:)), который в нашем примере присутствует в единственном числе (рис. 11.2).


Рис. 11.2. Файлы и папки в Проводнике

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

Чтобы открыть файл или папку, нужно дважды щелкнуть кнопкой мыши на нужном объекте или выделить его и нажать клавишу Enter.

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

Например, на рис. 11.3 указан путь для папки Windows NT, расположенной на диске C: в каталоге Program Files.


Рис. 11.3. Путь к папке

Если взглянуть на рис. 11.2, то можно заметить, что внутри папки Windows NT расположены другие файлы и папки. Им будут соответствовать следующие пути:

• C: Program FilesWindows NTPinball – полный путь к папке Pinball;

• C: Program FilesWindows NThtrn_jis.dll – полный путь к файлу htrn_jis.dll.

По аналогии формируются и другие пути.

Помимо строки адреса на панели инструментов расположено несколько полезных кнопок (рис. 11.4).


Рис. 11.4. Панель инструментов в окне Проводника

Если вам требуется вернуться на уровень вверх (например, из папки C: Program FilesWindows NTPinball в C: Program FilesWindows NT), нажмите кнопку Вверх. Как использовать навигацию на практике, смотрите в видеоролике «Урок 11.1. Навигация по файлам и папкам».

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


Рис. 11.5. Помощник по поиску

Вы можете выбрать различные варианты поиска. Для примера мы остановимся на классическом поиске, выбрав пункт Файлы и папки.

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


Рис. 11.6. Поиск файлов и папок

Например, вам нужно найти все файлы, второй и четвертый символы в названии которых могут быть произвольными. Произвольный символ обозначается знаком вопроса: m?f?le.

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

• myfile* – искать все файлы, начинающиеся на myfile;

• *eee – искать все файлы, заканчивающиеся на eee;

• *.exe – искать все файлы, имеющие расширение. exe;

• my*file – искать все файлы, начинающиеся на my и заканчивающиеся на file.

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

После задания фильтра следует нажать кнопку Найти – справа отобразятся результаты поиска. Как это выглядит на практике, смотрите в видеоролике «Урок 11.2. Поиск файлов и папок».

Для удобства навигации в Проводнике можно вывести дерево каталогов (рис. 11.7).


Рис. 11.7. Дерево каталогов

Оно вызывается нажатием кнопки Папки на панели инструментов. Структура носителей, подключенных к вашему компьютеру, отображается в виде дерева. Если у какой-либо папки есть вложенные папки, то рядом с ней появляется +. Щелкнув на нем кнопкой мыши, вы откроете список с вложенными объектами, а + заменится на —. Если щелкнуть кнопкой мыши на любой из папок в дереве, то справа отобразится их содержимое.

Последняя кнопка на панели инструментов позволяет изменять способ отображения файлов и папок (рис. 11.8).


Рис. 11.8. Настройки вида

Доступны следующие варианты.

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

• Плитка – файлы и папки выстроятся в несколько столбцов (число зависит от ширины окна). Помимо имени файла будет показана дополнительная информация о его размере и типе.

• Значки – отобразятся значки всех файлов и папок. Из информации будет доступно только имя.

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

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

Посмотреть изменение вида файлов и папок при выборе различных параметров можно в видеоролике «Урок 11.3. Способы отображения файлов и папок».

Как можно заметить на рис. 11.2, далеко не для всех файлов показывается их расширение. По умолчанию эта настройка отключена. Активизировать ее можно в окне Свойства папки (Сервис ? Свойства папки) (рис. 11.9).


Рис. 11.9. Пункт Свойства папки в меню Сервис

Окно Свойства папки (рис. 11.10) состоит из четырех вкладок: Общие, Вид, Типы файлов, Автономные файлы.


Рис. 11.10. Окно Свойства папки, вкладка Общие

На начальном этапе освоения Windows, да и в будущем вам вряд ли понадобятся две последние вкладки, так что их описание я опущу.

Вкладка Общие содержит несколько областей.

• Задачи – позволяет задать внешний вид окна Проводника. Если установить переключатель в положение Отображение списка типичных задач в папках, слева будет отображена специальная панель для быстрого доступа к определенным папкам вашего жесткого диска. Если установить переключатель в положение Использовать обычные папки Windows, то эта панель исчезнет.

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

• Щелчки мышью – позволяет задать открытие файлов и папок с помощью одного или двух щелчков кнопкой мыши. Как это выглядит на практике, вы сможете узнать, просмотрев видеоролик «Урок 11.4. Использование мыши для работы с файлами».

Переходим на вкладку Вид (рис. 11.11).


Рис. 11.11. Окно Свойства папки, вкладка Вид

Несколько слов о свойствах файлов и папок. Вы можете их просмотреть, щелкнув правой кнопкой мыши на необходимом объекте и выбрав в контекстном меню пункт Свойства.

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


Рис. 11.12. Свойства файла

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

В самом низу находятся три флажка, задающие атрибуты:

• Только чтение – файл можно переименовать, скопировать, удалить (подробнее об этом ниже), можно просмотреть, но не редактировать его содержимое;

• Скрытый – если установлен этот флажок, файл не будет виден в Проводнике.

Перейду к основным операциям с файлами и папками.

Данный текст является ознакомительным фрагментом.

Продолжение на ЛитРес

Навигация по папкам

Навигация по папкам Прежде чем перейти к разговору о способах перемещения по папкам, в чем нам поможет видеоролик «Урок 3.1. Перемещение по папкам», рассмотрим их организацию на диске. Нагляднее всего иерархическая структура каталогов представлена в дереве папок в нижней

Пути к файлам

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

7.7. Как назначить конкретные права доступа к файлам и папкам в XP Home? Simple File Sharing не выключается.

7.7. Как назначить конкретные права доступа к файлам и папкам в XP Home? Simple File Sharing не выключается. Действительно, в XP Home Simple File Sharing отключить нельзя, и никаких средств для этого в GIU XP Home нет. Но утилика для командной строки, которая это делает, есть. Для того чтобы узнать как она

2.4.1 Доступ к файлам

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

Навигация

16.2 Доступ к файлам

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

Путешествие по папкам

Путешествие по папкам Выше уже упоминалось, что папки образуют дерево, наподобие генеалогического древа. Или, учитывая, что «ветвление» происходит сверху вниз, правильнее назвать эту структуру генеалогическими лианами. В самом верху корень – Рабочий стол. От него

Доступ к файлам

Доступ к файлам Итак, библиотека Microsoft Scripting Runtime установлена, соответствующая ссылка в VBA проект добавлена. Теперь вы готовы приступить к созданию объектно-ориентированного программного кода, обеспечивающего возможность манипуляций с любыми файлами на диске. При работе

Навигация по файлам данных

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

Изменение путей к папкам

Изменение путей к папкам Возможности системного реестра позволяют изменять пути к системным и специальным папкам (например, Документы, Рабочий стол, Шаблоны и др.). Для этого предназначены параметры строкового типа разделов HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerShell Folders либо

1.3. Права доступа к файлам

1.3. Права доступа к файлам Давайте создадим файл, используя команду touch:$ touch myfileТеперь выполним команду ls -1:$ ls -1 myfile-rw?r--r-- 1 dave admin 0 Feb 19 22:05 myfileМы получили пустой файл, и, как и ожидалось, первый символ в строке режима свидетельствует о том, что это обычный файл. В результате

Как обратиться к папкам по сети?

Как обратиться к папкам по сети? Компьютеры локальной сети и папки, к которым на них открыт общий доступ, отображаются в Проводнике Windows.Откройте Проводник Windows и в области переходов разверните узел Домашняя группа — щелкните кнопкой мыши на треугольной стрелочке слева

Разграничение доступа к файлам

Разграничение доступа к файлам В Windows Vista можно управлять правами доступа к файлам и папкам для различных пользователей. Эта возможность реализована в файловой системе NTFS в виде разрешений, которые хранятся для каждого файла или папки вместе с именем, размером, датой и

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