0Pricing
Dart Academy · Урок

Каталоги, пути и FileSystemEntity

Перемещайтесь по файловой системе и изучайте её

«Каталоги, пути и FileSystemEntity» — бесплатный урок Dart Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Dart Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Dart Academy содержит 4 уроков всего.

Класс Directory

Подобно тому как File обозначает файл, класс Directory обозначает папку. Вы создаёте его из строки пути, после чего папку можно просматривать или создавать.

final dir = Directory('logs');

Создание папки

Вызовите create, чтобы создать папку. Добавьте recursive: true — и Dart за один раз создаст все отсутствующие родительские папки.

await dir.create(recursive: true);

Где выполняется программа

Нужна папка, из которой запустилась программа? Directory.current возвращает рабочий каталог — основу для относительных путей.

print(Directory.current.path);

Список содержимого папки

Используйте list, чтобы получить поток содержимого папки. Каждое событие представляет объект файловой системы, который можно проверять по одному.

await for (final e in dir.list()) print(e.path);

Рекурсивный обход

Передайте recursive: true в list, чтобы обойти также все вложенные папки и посетить всё дерево внутри каталога.

dir.list(recursive: true);

FileSystemEntity — родительский тип

Файлы и каталоги оба расширяют FileSystemEntity. Благодаря этому общему базовому типу list может передавать объекты обоих видов в одном потоке.

Определение типа объекта

Чтобы отличить файл от папки, используйте FileSystemEntity.isDirectory или проверьте тип объекта. Это делает ветвления в циклах безопасными.

if (await FileSystemEntity.isDirectory(e.path)) {}

Безопасное объединение путей

Не объединяйте пути обычными строками. Пакет path соединяет части, используя правильный разделитель для каждой платформы.

import 'package:path/path.dart' as p;

Построение пути

Вызовите p.join для каждого сегмента и получите правильный путь для Windows, macOS и Linux.

final full = p.join('data', 'users', 'a.txt');

Разбор пути на части

Разберите путь на части с помощью таких вспомогательных функций, как p.basename для имени файла и p.dirname для его папки.

print(p.basename('/data/a.txt'));

Получение расширения

Нужен только суффикс? p.extension возвращает его вместе с точкой, поэтому фильтровать файлы по типу очень просто.

print(p.extension('photo.png'));

Быстрая проверка

Вам нужен кроссплатформенный путь из нескольких сегментов. Как сделать это безопасно?

Итоги

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

Часто задаваемые вопросы

Урок «Каталоги, пути и FileSystemEntity» бесплатный?

Да — полный текст урока «Каталоги, пути и FileSystemEntity» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Dart Academy, подпишись на CoddyKit PRO. Курс Dart Academy содержит 4 уроков всего.

Чему я научусь в уроке «Каталоги, пути и FileSystemEntity»?

Перемещайтесь по файловой системе и изучайте её Ты практикуешь Dart Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Dart Academy?

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

Сколько времени занимает урок «Каталоги, пути и FileSystemEntity»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Dart Academy?

Да. Каждый урок Dart Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Чтение и запись файлов
  2. Каталоги, пути и FileSystemEntity
  3. Потоковая обработка больших файлов
  4. Stdin, Stdout и аргументы процесса
← Назад к Dart Academy