Файловая система ПК - Архитектура компьютеров и компьютерных сетей

Информатика: Новый полный справочник для подготовки к ЕГЭ - 2018 год

Файловая система ПК - Архитектура компьютеров и компьютерных сетей

Конспект

Пример типовой древовидной структуры файловой системы, принятой в ОС MS-DOS и Windows (используемой в задачах ЕГЭ):

image119

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

Полное имя файла — запись пути к файлу, завершаемая именем и расширением этого файла.

В ОС Windows записи пути и полного имени файла метка диска, имена каталогов и имя файла разделяются символом обратной косой черты — “\”. В ОС Linux записи пути и полного имени файла аналогичны, но в качестве символа-разделителя используется символ “/”.

Например, для файловой структуры в ОС Windows, изображённой на рисунке выше:

• путь к файлу Рефератl.doc — С:\Документы\Рефераты (показан пунктирной стрелкой);

• полное имя файла Реферат1.dос — С:\Документы\Рефераты\Реферат1.doc.

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

Символы-шаблоны — специальные символы-“джокеры”, обозначающие один или несколько любых символов:

• символ “*” (звёздочка) — заменяет собой любое количество любых символов (в том числе нулевое количество — этих символов может не быть вовсе);

• символ “?” (знак вопроса) — заменяет один (и только один) обязательно стоящий в данном месте любой символ.

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

Примеры:

*.* — все файлы (т.е. файлы с любым именем и любым расширением);

*.doc — все файлы с любыми именами и расширением doc;

text??.txt — все файлы, имена которых начинаются с букв text и завершаются обязательно имеющимися двумя любыми символами, а расширение которых — txt (например, это могут быть файлы

image120

Важное различие!

Символ “*” обозначает любое количество любых символов, в том числе нулевое (т.е. когда символов нет вообще).

Символ “?” обозначает один, и только один любой символ; несколько символов “?” подряд обозначают ровно такое же количество любых символов (например, ??? — ровно три любых символа, не больше и не меньше).

Чтобы задать количество любых символов, не меньшее заданного, нужно использовать оба указанных символа-шаблона, когда символы “?” задают минимально допустимое число символов, а последующий символ “*” указывает, что символов может быть и больше. Например, маска ???* означает запись, содержащую не менее трёх любых символов (три обязательных — ??? и любое количество, в том числе нулевое, необязательных — *).

Разбор типовых задач

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

символ “?” (вопросительный знак) означает ровно один произвольный символ;

символ “*” (звёздочка) означает любую последовательность символов произвольной длины, в том числе “*” может задавать и пустую последовательность.

Определите, какое из указанных имен файлов удовлетворяет маске:

Решение

Запись ?ba*r.?xt означает, что ищутся файлы, в имени которых:

• пара символов “bа” обязательно записаны на втором и третьем месте имени файла, а перед ними обязательно стоит один любой символ — в маске он закодирован знаком “?”;

• после символов “bа” может идти любое количество символов (знак “*”), но имя обязательно завершается буквой “r”;

• расширение имени всегда состоит из трёх символов, из которых два последние — “xt”.

Анализируя приведённые в качестве вариантов ответа имена файлов на соответствие этим требованиям получается:

1) bar.txt — здесь перед символами “bа” отсутствует символ (который закодирован знаком “?”) — данный вариант не подходит;

2) obar.txt — перед символами “bа” имеется символ “о”, имя завершается символом “r” (знак “*” может означать и отсутствие символов!), расширение имени состоит из трёх букв и завершается парой символов “xt” — данный вариант ответа годится;

3) obar.xt — хотя структура имени соответствует заданной маске (см. выше), расширение имени здесь двузначно, т.е. данное имя файла не соответствует маске;

4) barr.txt — перед символами “bа” отсутствует символ (который закодирован знаком “?”) — данный вариант не подходит.

Таким образом, указанной маске соответствует только имя файла obar.txt.

Ответ: obar.txt (вариант № 2).

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

• символ “?” (вопросительный знак) означает ровно один произвольный символ;

• символ “*” (звёздочка) означает любую последовательность символов произвольной длины, в том числе “*” может задавать и пустую последовательность.

Определите, по какой из масок будет выбрана указанная группа файлов:

Решение

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

1. Маска *23*.?х*. Предполагает, что имя файла обязательно содержит цифры 23, до и после которых может быть любое количество других символов (но их может и не быть!). В расширении же имени файла обязательно имеется символ “х”, перед которым обязательно есть какой-то символ, а после него может (но необязательно) быть любое число символов.

Этой маске не соответствует ни один из заданных файлов, так как в расширениях их имён символ “х” стоит первым, а не вторым. Следовательно, данная маска не является решением задачи.

2. Маска ?23?.х??. Предполагает, что в имени файла перед и после цифр 23 обязательно есть по одному какому-то символу (знаки “?” в маске), а в расширении имени символ “х” обязательно стоит самым первым и после него обязательно есть ещё два каких-то символа.

Этой маске не соответствуют имена файлов 23.xml и 234.xls, так как в них не обеспечено наличие по одному символу до и после цифр 23. Следовательно, данная маска также не является решением задачи.

3. Маска ?23?.х*. Предполагает, что в имени файла перед и после цифр 23 обязательно есть по одному какому-то символу (знаки “?” в маске), а в расширении имени символ “х” обязательно стоит самым первым и после него могут (но не обязательно) стоять какие-то другие символы.

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

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

Этой маске полностью соответствуют все заданные файлы. Следовательно, данная маска является решением задачи.

Ответ: маска *23*.??? (вариант № 4).

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

Символ “?” (вопросительный знак) означает ровно один произвольный символ.

Символ “*” (звёздочка) означает любую последовательность символов произвольной длины, в том числе “*” может задавать и пустую последовательность.

В каталоге находится 6 файлов:

maverick.map

maverick.mp3

tavema.mp4

revolver.mp4

vera.mp3

zveri.mp3

Ниже представлено восемь масок. Сколько из них таких, которым соответствуют ровно три файла из данного каталога?

*ver*.mp*

*?ver?*.mp?

?*ver*.mp?*

*v*r*7.m?p*

???*???.mp*

???*???.m*

*а*.*а*

*а*.*р*

Решение

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

1) Маска *ver*.mp* предполагает, что где-то в имени файла содержится набор символов ver, а расширение начинается с символов mр. Значит, такая маска отберёт файлы maverick.mp3, taverna.mp4, revolver.mp4, vera.mp3, zveri.mp3 — всего 5 файлов. Значит, эта маска нам не годится.

2) Маска *?ver?*.mp? отличается от предыдущей тем, что до и после символов ver обязательно должны стоять минимум по одному символу, а в расширении после символов mр может быть только один символ. Значит, такая маска отберет файлы maverick.mp3, tavema.mp4 и zveri.mp3 (а имена revolver.mp4 и vera.mp3 не удовлетворяют этой маске, так как в них группа символов ver располагается с краю имён). Всего 3 файла. Значит, эта маска подходит.

3) Маска ?*ver*.mp?* — минимум один символ должен быть перед ver, а в расширении после mр должно быть не менее одного символа. Такая маска отберёт файлы maverick.mp3, taverna.mp4, revolver.mp4 и zveri.mp3 — 4 файла. Данная маска не годится.

4) Маска *v*r*?.m?p* — не обращая внимания на маску имени, заметим: в расширении между m и р должен СТОЯТЬ хотя бы один какой-то символ. А у нас этому условию соответствует единственный файл maverick.map. Значит, эта маска тоже не годится.

5) Маска ???*???.mр* — ей удовлетворяют файлы с любыми именами не менее чем из 6 букв и с расширениями, начинающимися с mр. Значит, будут отобраны файлы maverick.mp3, taverna.mp4 и revolver.mp4 (у файлов vera.mp3 и zveri.mp3 имена слишком короткие, а расширение файла maverick.map не соответствует расширению в маске). Значит, данная маска тоже подходит.

6) Маска ???*???.m* — отличается от предыдущей тем, что здесь расширение может быть любым, лишь бы оно начиналось с т. Тогда в дополнение к файлам maverick.mp3, taverna.mp4 и revolver.mp4 в подборку попадёт и файл maverick.map. Всего 4 файла. Значит, эта маска не годится.

7) Маска *а*.*а* — соответствует любым файлам, у которых и в имени, и в расширении есть хотя бы одна буква а. Этому условию соответствует только один файл — maverick.map. Значит, эта маска тоже не годится.

8) Маска *а*.*р* — здесь в имени требуется хотя бы одна буква а, а в расширении — хотя бы одна буква р. Этому условию соответствуют файлы: maverick.map, maverick.mp3, taverna.mp4 и vera.mp3. В этой подборке 4 файла, значит, данная маска тоже не годится.

Итого нам подошло две маски — *?ver?*.mp? и ???*???.mр*.

Ответ: 2.






Для любых предложений по сайту: [email protected]