Курс языка программирования Raku / Объекты, ввод-вывод и исключения / Ввод и вывод / Работа с каталогами / Exercises / Создайте каталог

Решение: Создайте каталог

Вот один из возможных вариантов решения задачи.

Код

mkdir 'reports';
spurt 'reports/data.txt', 'x';

say 'reports'.IO.d;
say 'reports/data.txt'.IO.e;

🦋 Исходный код можно найти в файле make-a-directory.raku.

Вывод

True
True

Комментарии

  1. mkdir создаёт каталог, а .IO.d подтверждает, что reports — это каталог.

  2. Поскольку каталог теперь существует, в него можно записать файл, указав путь, включающий имя каталога, — reports/data.txt. Проверка .e для этого пути подтверждает, что файл создан внутри нового каталога.

  3. Порядок здесь важен: spurt не создаёт недостающие каталоги за вас. Запись в reports/data.txt до того, как появился каталог reports, завершится ошибкой вроде Failed to open file … : No such file or directory. Именно предварительное создание каталога — как здесь делает mkdir — и позволяет записи пройти. Удобно, что mkdir заодно создаёт и все недостающие промежуточные каталоги, поэтому вложенный путь вроде mkdir 'reports/2026' строит всю цепочку за один вызов.

Навигация по курсу

Создайте каталог   |   Файл или каталог?