А
Информатика·9 класскод 4.1·8 мин

Файловая система: каталоги, полное имя файла и маски поиска

Как читать дерево каталогов, строить полное имя файла и безошибочно применять маски с символами * и ?.

Тренировать тему

Файловая система даёт в ОГЭ два разных задания: теоретическое — на маску имени, и практическое (задание 11) — на поиск файла средствами операционной системы. Оба требуют точного понимания, из чего состоит имя файла.

Полное имя файла

Полное имя состоит из пути и собственно имени: имя диска, двоеточие, обратный слеш, последовательность вложенных каталогов через слеши и имя файла с расширением. Например: D:\ШКОЛА\ИНФОРМАТИКА\otchet.docx. Каталоги перечисляются от корня к файлу.

Дерево каталогов диска D:
D:\
ШКОЛА
ИНФОРМАТИКАМАТЕМАТИКА
ФОТО
leto.jpg
Полное имя файла — это путь по дереву от корня до листа.

Символы маски

СимволЧто означаетПример маскиПодходитНе подходит
?ровно один любой символ?ab.txtkab.txtab.txt
*любая последовательность, в том числе пустаяa*.txta.txt, abc.txtbac.txt
точкаразделитель имени и расширения*.do?text.doctext.docx
Как проверять файл по маске
Делим маску точкой
Отдельно имя, отдельно расширение
Считаем обязательные символы
Каждый ? — ровно один символ
Проверяем фиксированные буквы
Их порядок должен совпадать
Растягиваем *
Звёздочка может закрыть и ноль символов
Сверяем длину расширения
Частая причина отсева
Маска проверяется целиком, слева направо, отдельно до точки и после неё.
Маска ?ab*.x?t — разбор кандидатов
Подходит
  • ·tabmen.xlt: ?=t, ab, *=men, x?t=xlt
  • ·sabr.xxt: ?=s, ab, *=r, x?t=xxt
Не подходит
  • ·kab.xt: расширение из 2 символов, нужно 3
  • ·abc.xyt: перед ab нет символа для ?
  • ·tab.txt: расширение начинается не с x
Слева подходящие, справа — отсеянные и причина отсева.
Задание на маску

Условие: определите, какое из указанных имён файлов удовлетворяет маске ?ab*.x?t 1) kab.xt 2) tabmen.xlt 3) abc.xyt 4) sab.xt Решение. Маска до точки: ?ab* — один любой символ, затем буквы a и b, затем что угодно. Маска после точки: x?t — ровно три символа, первый x, третий t. 1) kab.xt — имя подходит (?=k, ab, *=пусто), но расширение «xt» содержит 2 символа вместо 3 — не подходит. 2) tabmen.xlt — ?=t, затем ab, *=men; расширение xlt: x, любой l, t — подходит. 3) abc.xyt — перед «ab» нет символа под ?; сама строка начинается с a, значит ?=a, а дальше должно идти «ab», но идёт «bc» — не подходит. 4) sab.xt — расширение из 2 символов — не подходит. В бланк: 2

Задание 11 ОГЭ (практика)

Условие: в одном из подкаталогов каталога DEMO находится файл, содержащий слово «мышь». Определите размер этого файла в килобайтах. Порядок действий на компьютере. 1) Открыть каталог DEMO. 2) В строке поиска указать искомое слово и включить поиск по содержимому файлов, обязательно с флагом «включая вложенные папки». 3) В результатах открыть свойства найденного файла. 4) В свойствах прочитать размер именно в килобайтах (Кбайт), а не в байтах. В бланк: число, например 24 — без слова «Кбайт» и без пробелов.

Ловушка: звёздочка и ноль символов

Символ * заменяет любую последовательность, включая пустую, поэтому маске a*.txt удовлетворяет и файл a.txt. А вот ? обязательно требует ровно один символ: маске ?a.txt файл a.txt не удовлетворяет. Вторая типичная потеря балла — проверить имя и забыть проверить расширение: длина расширения задаётся маской так же жёстко.

Контроль решения
  • Маска разделена на часть до точки и после точки
  • Каждый ? заменён ровно одним символом
  • Учтено, что * может означать пустую строку
  • Длина расширения совпадает с требованием маски
  • В практическом задании поиск включал вложенные подкаталоги
  • Ответ записан в требуемых единицах, только цифрами