Навигация файловая структура windows

Навигация по файловой системе File System Navigation

Заголовок реализует техническую спецификацию файловой системы C++ ISO/IEC TS 18822:2015 (окончательный вариант черновика: ISO/IEC JTC 1/SC 22/WG 21 N4100) и имеет типы и функции, позволяющие создавать независимый от платформы код для навигации по файловой системе. The header implements the C++ File System Technical Specification ISO/IEC TS 18822:2015 (Final draft: ISO/IEC JTC 1/SC 22/WG 21 N4100) and has types and functions that enable you to write platform-independent code for navigating the file system. Поскольку это межплатформенное приложение, оно содержит интерфейсы API, не относящиеся к системам Windows. Because it’s cross-platform, it contains APIs that aren’t relevant for Windows systems. Например, is_fifo(const path&) всегда возвращает значение false в Windows. For example, is_fifo(const path&) always returns false on Windows.

Обзор Overview

Используйте API для следующих задач: Use the APIs for the following tasks:

выполнение итерации по файлам и каталогам в указанном пути; iterate over files and directories under a specified path

получение сведений о файлах, включая время создания, размер, расширение и корневой каталог; get information about files including the time created, size, extension, and root directory

составление, разделение и сравнение путей; compose, decompose, and compare paths

Создание, копирование и удаление каталогов create, copy, and delete directories

копирование и удаление файлов. copy and delete files

Дополнительные сведения о вводе-выводе файлов с помощью стандартной библиотеки см. в разделе Программирование iostream. For more information about File IO using the Standard Library, see iostream Programming.

Пути Paths

Создание и составление путей Constructing and composing paths

Пути в Windows (начиная с XP) изначально хранятся в Юникоде. Paths in Windows (since XP) are stored natively in Unicode. path Класс автоматически выполняет все необходимые преобразования строк. The path class automatically does all necessary string conversions. Он принимает аргументы как для широких, так и для узких символьных массивов, а также для std::string std::wstring типов, отформатированных как UTF8 или UTF16. It accepts arguments of both wide and narrow character arrays, and both std::string and std::wstring types formatted as UTF8 or UTF16. Класс path также автоматически нормализует разделители путей. The path class also automatically normalizes path separators. В аргументах конструктора в качестве разделителя каталогов можно использовать одиночную косую черту. You can use a single forward slash as a directory separator in constructor arguments. Этот разделитель позволяет использовать одни и те же строки для хранения путей в средах Windows и UNIX: This separator lets you use the same strings to store paths in both Windows and UNIX environments:

Для объединения двух путей можно использовать перегруженные операторы / и /= , которые аналогичны операторам + и += в std::string и std::wstring . To concatenate two paths, you can use the overloaded / and /= operators, which are analogous to the + and += operators on std::string and std::wstring . path Объект будет удобным образом предоставлять разделители, если это не так. The path object will conveniently supply the separators if you don’t.

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

Класс Path имеет несколько методов, возвращающих сведения о различных частях пути. The path class has several methods that return information about various parts of the path itself. Эта информация отличается от сведений о сущности файловой системы, на которую может ссылаться. This information is distinct from the information about the file system entity it might refer to. Можно получить корень, относительный путь, имя файла, расширение файла и другие сведения. You can get the root, the relative path, the file name, the file extension, and more. Можно выполнять итерацию по объекту path для проверки всех папок в иерархии. You can iterate over a path object to examine all the folders in the hierarchy. В следующем примере показано, как выполнить итерацию по объекту пути. The following example shows how to iterate over a path object. И, как получить сведения о его частях. And, how to retrieve information about its parts.

Читайте также:  Настройки windows при работе с ssd

Код создает следующие выходные данные: The code produces this output:

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

Класс path перегружает операторы сравнения на равенство как std::string и std::wstring . The path class overloads the same comparison operators as std::string and std::wstring . При сравнении двух путей необходимо выполнить сравнение строк после нормализации разделителей. When you compare two paths, you make a string comparison after the separators have been normalized. Если пропущена Замыкающая косая черта (или обратная косая черта), она не добавляется и влияет на сравнение. If a trailing slash (or backslash) is missing, it isn’t added, and that affects the comparison. В следующем примере показано, как выполняется сравнение значений пути: The following example demonstrates how path values compare:

Для запуска этого кода вставьте его в полный пример выше перед main и раскомментируйте строку, которая вызывает его в основном объекте. To run this code, paste it into the full example above before main and uncomment the line that calls it in main.

Преобразование между типами пути и строки Converting between path and string types

Объект path может быть неявно преобразован в std::wstring или std::string . A path object is implicitly convertible to std::wstring or std::string . Это означает, что можно передать путь к таким функциям wofstream::open , как, как показано в следующем примере: It means you can pass a path to functions such as wofstream::open , as shown in this example:

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

Заголовок предоставляет directory_iterator тип для итерации по отдельным каталогам и recursive_directory_iterator класс для рекурсивного прохода по каталогу и его подкаталогам. The header provides the directory_iterator type to iterate over single directories, and the recursive_directory_iterator class to iterate recursively over a directory and its subdirectories. После создания итератора путем передачи ему объекта path итератор указывает на первое значение directory_entry в пути. After you construct an iterator by passing it a path object, the iterator points to the first directory_entry in the path. Создайте конечный итератор путем вызова конструктора по умолчанию. Create the end iterator by calling the default constructor.

При итерации по каталогу существует несколько типов элементов, которые можно обнаружить. When iterating through a directory, there are several kinds of items you might discover. К этим элементам относятся каталоги, файлы, символические ссылки, файлы сокетов и др. These items include directories, files, symbolic links, socket files, and others. directory_iterator Возвращает свои элементы в виде directory_entry объектов. The directory_iterator returns its items as directory_entry objects.

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

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

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

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

Читайте также:  Minecraft windows 10 edition key free region global

Кластер — упрощенно, минимальная ячейка на жестком диске для хранения информации, эдакая коробочка для хранения файлов. Кластер имеет вполне конкретные стандартизованные размеры равные 512 байт раньше и 4 096 байт в настоящее время. В одном кластере хранится только один файл, если он меньше размера кластера, то все равно занимает весь кластер. Когда файл не помещается целиком в одном кластере, то он записывается кусочками по разным кластерам, необязательно соседним. Поскольку размеры файлов крайне редко кратны размеру кластера, то на диске файлы практически всегда занимают больше места, чем их реальный размер. Чтобы было понятнее, возьмем для наглядности такой пример. Есть 9 кирпичей, из них 3 белых и 6 красных, а в контейнер помещается только 5 кирпичей одного типа. Чтобы хранить наши кирпичи нам понадобится 3 контейнера, хотя емкость двух контейнеров 10 кирпичей. Вот наглядная иллюстрация, как это происходит.

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

Файл размером 6 байт занимает в файловой системе жесткого диска 4 096 байт , т.е. один кластер. Соответственно маленький размер кластера больше подходит для хранения маленьких файлов, а большой размер кластера для хранения больших. Тогда место на диске будет использоваться более рационально. Так же происходит и с ярлыками.

Структура файловой системы Windows

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

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

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

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

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

Вот и все, что мы хотели рассказать о файловой системе компьютера в операционной системе Windows.

Навигация по файловой системе

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

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

Запуск программы Проводник:

кнопка на Панели задачВсе программыСтандартныеПроводник

п.к.м. на кнопке Проводник

Читайте также:  Install windows from usb asus

п.к.м. на значке Проводник

в окне любой папки кнопка на Панели инструментов

Рисунок 4. Папка «Program Files» в окно программы Проводник

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

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

Другие операции с файловой системой описаны в таблице 7.

Таблица 7. Основные операции с файловой системой

Операция Команды
Запуск программ и открытие документов два раза л.к.м. на объекте ИЛИ п.к.м. на объекте → Открыть (Запуск) ИЛИ выделяем объект → Файл → Открыть (Запуск)
Создание папок п.к.м. на месте, где необходимо создать объект → Создать ИЛИ Файл → Создать
Копирование файлов и папок выделяем объект →кнопка Копировать[3],затем ставим курсор туда куда необходимо поместить скопированный объект → кнопка Вставить (на Панели инструментов) ИЛИ выделяем объект →п.к.м. на объекте → Копировать→п.к.м.→ Вставить ИЛИ выделяем объект →Правка → Копировать→Правка → Вставить ИЛИ выделяем объект → копируем помощью специального перетаскивания ИЛИ выделяем объект →CTRL+С(копировать)→ CTRL+V (вставить)
Перемещение файлов и папок выделяем объект →кнопка Вырезать,затем ставим курсор туда куда необходимо поместить вырезанный объект→ кнопка Вставить (на Панели инструментов) ИЛИ выделяем объект →п.к.м. на объекте → Вырезать→ п.к.м.→ Вставить ИЛИ выделяем объект → Правка → Вырезать→ Правка → Вставить ИЛИ выделяем объект → перемещаем с помощью перетаскивания ИЛИ выделяем объект → CTRL+X(вырезать) →CTRL+V (вставить)

Продолжение таблицы 7

Операция Команды
Удаление файлов и папок выделяем объект →кнопка Удалить (на Панели инструментов) ИЛИ п.к.м. на объекте → Удалить ИЛИ выделяем объект → удаляем с помощью перетаскивания в ИЛИ выделяем объект → Файл → Удалить ИЛИ выделяем объект → нажимаем кнопку Delete ИЛИ выделяем объект → нажимаем сочетание клавиш Shift+Delete(после данного способа удаления восстановить объект из корзины нельзя)
Переименование файлов и папок п.к.м. на объекте → Переименовать ИЛИ выделяем объект → Файл → Переименовать ИЛИ выделяем объект → нажимаем функциональную клавишу F2
Создание ярлыков 1. с объекта: п.к.м. на объекте → Создать→ Ярлык ИЛИ выделяем объект → создаем ярлык с помощью специального перетаскивания 2. с любого свободного места: п.к.м. на месте где необходимо поместить ярлык → Создать→ Ярлык→ нажимаем кнопку → выбираем объект для которого будет создан ярлык → нажимаем кнопку → даем имя ярлыку → нажимаем кнопку .

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

Рассмотрим операцию над объектами такую как выделение объектов.

Выделение объектов:

л.к.мвыделяем один объект → с помощью CTRL+л.к.мвыделяем другие необходимые объекты

с помощью протягивания

нажимаем л.к.м на первом элементе группы → нажимаем Shift+л.к.мна последнем объекте группы

Правка → Выделить все

сочетание клавишCTRL+A

Поисковая система Windows

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

Запуск поисковой системы Windows:

кнопка на Панели задачПоиск

п.к.м. на кнопке Найти…

п.к.м. на значке Найти…

в окне любой папки кнопка на Панели инструментов

в окне любой папки нажимаем функциональную клавишу F3

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

Символы, используемые при составлении шаблонов файлов (папок):

символ Ø заменяет любую последовательность символов в имени или расширении файла

символ ?заменяет один символ и необходим для ограничения количества букв в имени

Оцените статью