Маска имени файла и поиск по шаблону
💻 Информатика · 8 класс
Что такое маска имени файла
Маска (шаблон) имени файла — это запись, которая описывает не один файл, а целую группу файлов с похожими именами. Маски используют, когда нужно найти, скопировать или удалить сразу несколько файлов, не перечисляя каждый по отдельности.
Представьте папку с сотней фотографий. Чтобы выбрать все снимки в формате jpg, не нужно щёлкать по каждому — достаточно задать маску, и система сама отберёт подходящие файлы. В этом и состоит удобство масок.
В маске применяют два специальных символа-заместителя.
| Символ | Что заменяет |
|---|---|
* | Любое количество любых символов (в том числе ноль) |
? | Ровно один любой символ |
Как читать маску
Маска проверяется по частям: имя и расширение сравниваются с шаблоном. Если каждый символ совпадает (а * и ? совпадают по своим правилам), файл подходит под маску. Проверку удобно вести слева направо, символ за символом, мысленно подставляя реальные буквы вместо заместителей.
Разберём маску *.txt. Звёздочка заменяет любое имя, а расширение должно быть точно txt. Значит, под маску подходят все текстовые файлы.
отчёт.txt — подходит
план.txt — подходит
рисунок.jpg — НЕ подходит (расширение другое)
Примеры масок
| Маска | Что находит |
|---|---|
*.* | Все файлы с любым расширением |
дом?.txt | дом1.txt, домА.txt, но не дом.txt |
a*.doc | Файлы на букву «a» с расширением doc |
???.bmp | Файлы ровно из трёх символов в имени |
Правило. Символ?обязательно заменяет ровно один символ, поэтому имя должно иметь нужную длину. А*может заменить и пустое место, поэтому подходит и для коротких имён.
Маска проверяется отдельно для имени и отдельно для расширения. Если в шаблоне после точки стоит конкретное расширение, то и у файла оно должно совпадать буква в букву. Если же там стоит *, расширение может быть любым.
Разбор задачи
Какие из файлов подходят под маску ?ор*.txt? Под маску попадают файлы, у которых второй и третий символы — «ор», дальше любые символы, расширение txt.
город.txt — подходит (г-о-р-...)
сорт.txt — подходит (с-о-р-т)
норма.doc — НЕ подходит (расширение)
Частая ошибка. Забывают, что?нельзя пропустить: под маску?ор*.txtфайлорех.txtне подходит, потому что перед «ор» должен стоять ровно один символ. А вот под маску*ор*.txtфайлорех.txtподходит, ведь звёздочка допускает и пустое место перед «ор».
Кратко о главном
- Маска описывает группу файлов по шаблону имени.
- Символ
*заменяет любое количество символов, в том числе ноль. - Символ
?заменяет ровно один символ. - Имя и расширение проверяются на совпадение по отдельности.
- Маски удобны для поиска, копирования и удаления групп файлов по шаблону.