функция Directory::create

Асинхронное создание директорий в файловой системе

Синтаксис

Future[bool]
Directory.create
(bool recursive)

Передаваемые параметры

bool recursive

Возвращаемое значение

Future[bool]

Описание

Метод create позволяет асинхронно создать директорию или несколько вложенных директорий в файловой системе.

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

Если параметр recursive установлен в false, то создается только последняя директория в пути, а в там случае, когда recursive установлен в true, последовательно создаются все несуществующие директории.

Когда все каталоги в пути уже существуют - во время выполнения функции ничего не происходит.

Заметки

Примеры использования:


import "dart:io";

void main() {
  // создадим поддиректорию внутри текущей директории
  Directory temporaryDir1 = new Directory("./temporary01");

  // непосредственно запустим процесс создания директории в файловой системе
  Future<Directory> created1 = temporaryDir1.create(recursive: false);
  // определим функцию обработчик, вызываемую по результатам создания каталога
  created1.onComplete((Future<Directory> future) {
    if (future.hasValue) {
      // создание прошло успешно, директория создана
      // выведем путь на экран
      print(future.value.path);

      // удалим директорию
      temporaryDir1.deleteSync(recursive: true);
    }
  });


  // создадим несколько вложенных директорий
  Directory temporaryDir2 = new Directory("./temporary02/aa/00");

  // непосредственно запустим процесс создания директорий в файловой системе
  // и укажем, что их необходимо создавать рекурсивно
  Future<Directory> created2 = temporaryDir2.create(recursive: true);
  created2.onComplete((Future<Directory> future) {
    if (future.hasValue) {
      // создание прошло успешно, директория создана
      // выведем путь на экран
      print(future.value.path);

      // удалим директорию cо всеми поддиректориями
      temporaryDir2.deleteSync(recursive: true);
    }
  });
}
					

Официальная документация (английский)