Пути и операции с файлами
Путь однозначно показывает, где находится файл или папка в файловой системе. В этой теме разберём, как отличать полный путь от относительного, читать маски и определять результат команд копирования, перемещения и удаления файлов.
Путь к файлу и его части
Путь к файлу — это последовательность имён папок, которая ведёт от некоторого начального места файловой системы к нужному файлу. В Windows элементы пути обычно разделяются обратной косой чертой: C:\Учёба\Информатика\конспект.txt. В Unix-подобных системах используется прямая косая черта: /home/student/notes.txt. В задачах экзамена вид разделителя обычно указан явно или следует из жазбалар.
Имя файла состоит из негізгі части и расширения. Например, в report.docx имя — report, а расширение — docx. Расширение часто указывает на тип данных, но само по себе не гарантирует содержимое файла. Путь включает имя файла и все папки, через которые к нему нужно пройти.
Полный, или абсолютный, путь начинается с корневого каталога либо с обозначения диска и не зависит от текущей папки. Пример: D:\Проекты\2025\таблица.xlsx. Относительный путь задаётся относительно текущей папки: 2025\таблица.xlsx.
Текущая папка — это каталог, с которым в данный момент работает команда или программа. Если текущая папка D:\Проекты, то путь 2025\таблица.xlsx обозначает тот же файл, что и полный путь D:\Проекты\2025\таблица.xlsx.
Чтобы получить полный путь из относительного, мысленно приписывают относительный путь к текущей папке. Обозначения . и .. означают соответственно текущую папку и родительскую папку. Например, при текущей папке C:\A\B путь ..\x.txt указывает на C:\A\x.txt.
Маски и отбор файлов
Маска — это шаблон имени, позволяющий выбрать сразу несколько файлов. В типичных заданиях используются два специальных символа: * заменяет любое количество любых символов, в том числе ноль, а ? заменяет ровно один произвольный символ.
| Маска | Что подходит | Что не подходит |
|---|---|---|
*.txt | a.txt, notes.txt | a.doc |
data?.csv | data1.csv, dataA.csv | data10.csv |
img*.jpg | img.jpg, img01.jpg | image.png |
a*.* | Файлы, начинающиеся с a, с любым расширением | book.txt |
Маска применяется к имени файла, а в некоторых командах — к последней части пути. Нужно внимательно различать символы: ? не заменяет два знака, а * может заменить и пустую последовательность. Подробный разбор таких шаблонов приведён на странице поиска файлов по маске.
Маска *.txt отбирает файлы с расширением txt, но не папки. Маска report* может выбрать файлы report.txt и reports.doc, если команда рассматривает всё имя целиком.
Какие имена соответствуют маске doc?.txt?
doc стоит ровно один символ, затем следует расширение .txt.?, во втором после doc стоят два символа.Копирование и перемещение
Операции с файлами изменяют расположение или количество копий объектов. При копировании исходный файл сохраняется, а в указанном месте появляется его копия. При перемещении файл исчезает из исходной папки и появляется в новой. Если источник и назначение находятся на одном диске, перемещение обычно меняет запись о расположении; смысл операции от этого не меняется.
| Операция | Исходный объект | Результат |
|---|---|---|
| Копирование | Сохраняется | Появляется ещё одна копия |
| Перемещение | Удаляется из прежнего места | Объект оказывается в новом месте |
| Удаление | Исчезает из папки | Файл становится недоступен по прежнему пути |
Если копируют один файл в другую папку и там нет одноимённого файла, количество файлов увеличивается на один. Перемещение файла между папками количество файлов в файловой системе не изменяет. Удаление уменьшает его на один, если удалён именно один файл.
В командных строках часто встречается схема операция источник назначение. Источник — существующий файл или маска, назначение — папка либо новое имя. Например, команда копирования copy A\*.txt B\ переносит копии всех текстовых файлов из папки A в папку B. Точный синтаксис зависит от операционной системы, поэтому в экзаменационной задаче нужно опираться на приведённые в условии правила.
В папке C:\Work находятся a.txt, b.txt, c.doc, а папка C:\Archive пуста. Выполнены команды: скопировать *.txt в Archive, затем переместить c.doc в Archive.
*.txt выбирает только файлы с расширением txt.Work остаются все три файла.Archive появляются две копии текстовых файлов.c.doc удаляет его из Work и добавляет в Archive.Итог: всего стало пять файлов. Имена a.txt и b.txt существуют в двух папках, но это две разные файловые записи, поэтому каждая копия считается отдельным файлом.
Удаление и анализ результата
Удаление убирает файл из указанного места. Если команда содержит маску, удаляются все подходящие файлы, а не один случайный файл. Например, удаление temp?.log затрагивает temp1.log, но не temp10.log и не temp.log.
1. Считают копирование перемещением и вычитают файл из исходной папки. 2. Принимают ? за любое количество символов. 3. Забывают, что относительный путь отсчитывается от текущей папки. 4. Считают одинаковые имена в разных папках одним файлом. 5. Применяют маску только к расширению, хотя она описывает всё имя.
Для решения задачи удобно составить таблицу состояния папок после каждой команды. Сначала определите, какие файлы подходят под маску, затем выполните одну операцию, запишите изменения и только после этого переходите к следующей команде. Особенно важно соблюдать порядок: последующая команда может работать уже с изменённым набором файлов.
Подчеркните в условии источник и назначение каждой команды. Рядом с маской выпишите список подходящих имён. Для копирования рисуйте стрелку с сохранением источника, для перемещения — стрелку с исчезновением источника, для удаления — крестик.
Связь пути с объектами файловой системы
Файл или папка являются объектами файловой системы. Папка может содержать другие папки и файлы, образуя дерево. Один и тот же файл можно однозначно найти по полному пути, если в каждой папке нет двух объектов с одинаковым именем.
При подсчёте учитывайте, что папка и файл — разные объекты. Если команда копирует папку целиком, число файлов внутри неё может увеличиться сразу на несколько единиц. Если в условии сказано «скопировать файлы, подходящие под маску», сама папка назначения обычно не считается файлом.
Копирование увеличивает число экземпляров файлов, перемещение меняет их путь, удаление уменьшает число доступных файлов. Маска определяет, какие имена участвуют в операции.
Проверь себя
? в маске?Главное
- Полный путь не зависит от текущей папки, относительный путь вычисляется от неё.
*заменяет любое количество символов,?— ровно один символ.- Копирование сохраняет источник и создаёт копию.
- Перемещение меняет расположение файла, а удаление убирает его из файловой системы.
- При решении тапсырма сначала раскройте маску, затем выполняйте команды строго по порядку.