Файловая система и поиск в ОС — теория для ОГЭ (задания 11, 12)
Коротко о главном
Файловая система — это иерархическая (древовидная) структура хранения файлов на диске. Все файлы и папки образуют дерево: на верхнем уровне — корневой каталог (диск), внутри — подкаталоги (папки), внутри них — файлы или другие подкаталоги.
В заданиях 11–12 ОГЭ проверяют умение:
- записывать полный путь к файлу;
- определять имя каталога или файла по маршруту;
- работать с масками поиска (символы
*и?); - понимать, какие файлы будут найдены при поиске по маске или по подстроке в имени.
Определения и формулы/правила
| Термин | Определение |
|---|---|
| Корневой каталог | Верхний уровень дерева, обозначается буквой диска, например или |
| Каталог (папка) | Узел дерева, может содержать файлы и другие каталоги |
| Путь (маршрут) | Последовательность имён каталогов от корня до файла, разделённых (Windows) или (Unix) |
| Полное имя файла | Путь + имя файла с расширением |
| Маска поиска | Шаблон имени с использованием * и ? |
Правила записи пути. В Windows разделитель — обратный слэш: . Пример: Это означает: диск , папка , в ней папка , в ней файл .
Правила масок поиска.
| Символ | Значение |
|---|---|
* |
любое количество любых символов (в том числе ноль) |
? |
ровно один любой символ |
Примеры масок:
*.txt— все файлы с расширением txt, любое имя;a?.doc— файлы вида a1.doc, ab.doc, но не a.doc и не abc.doc (ровно один символ после a);file*.*— все файлы, чьё имя начинается на file, расширение любое;?????.txt— файлы с txt-расширением, имя ровно из 5 символов.
Работа с деревом каталогов на экзамене. Часто дают рисунок дерева и просят:
- Найти путь к конкретному файлу — идти от корня вниз, записывая имена папок через разделитель.
- Найти файл по данному пути — идти по дереву от корня, спускаясь по указанным именам папок.
- Определить количество файлов, подходящих под маску, — просмотреть список имён и сравнить каждое с шаблоном.
Как применять
Пример 1. Дано дерево: диск → папка → папка → файл . Полный путь:
Пример 2. Определить, подходят ли имена под маску s*.??2:
- — подходит (начинается на s, заканчивается на 2, перед 2 — ровно два символа: a1);
- — не подходит (перед
.должно быть s..., а после точки — ровно 3 символа: ??2, здесь только 2 символа); - — подходит.
Пример 3. Задан путь . Нужно определить имя каталога третьего уровня (считая диск первым уровнем). Уровень 1 — диск , уровень 2 — , уровень 3 — . Ответ: .
Типичные ошибки
- Путают разделители: используют вместо в задачах с Windows-путями (в ответе ОГЭ, как правило, ожидается разделитель из условия задачи).
- Забывают, что
?заменяет ровно один символ, а не «любое количество» — путают с*. - Не учитывают регистр и точку в маске:
.в маске всегда должна совпадать с точкой перед расширением. - Считают уровни каталогов неправильно — забывают, что диск (корень) — это тоже уровень.
- При подсчёте файлов по маске забывают проверить длину имени, если в маске стоят
?. - Путают полное имя файла (с путём) и просто имя файла (без пути).
Где встречается на экзамене
Задание 11 обычно даёт список файлов с масками и просит определить количество файлов, удовлетворяющих условию поиска, или записать маску для заданного набора файлов.
Задание 12 чаще всего представляет дерево каталогов (текстом или графически) и требует записать полный путь к файлу, определить имя каталога на определённом уровне или посчитать количество файлов/папок, удовлетворяющих условию.
Частые вопросы
Чем отличаются символы * и ? в маске поиска?
Символ * заменяет любое количество символов, включая ноль, а ? заменяет ровно один произвольный символ.
Как правильно записать путь к файлу в Windows?
От диска через обратный слэш перечисляют все папки по порядку, последним указывают имя файла с расширением, например .
Диск считается уровнем каталога?
Да, корневой каталог диска — это первый уровень дерева, поэтому при подсчёте уровней его нужно учитывать.
Как найти файл в дереве каталогов по описанию?
Нужно двигаться от корня вниз, на каждом шаге выбирая указанную папку, пока не дойдёте до нужного файла.
Подходит ли имя file.txt под маску f?le.*?
Да, так как ? заменяет ровно один символ (i), а * после точки соответствует расширению txt.
Что делать, если в маске несколько звёздочек?
Каждая * независимо может заменить любое количество символов (включая ноль) в соответствующей части имени.
Потренироваться: задание 11 · задание 12