Библиотеки » Ввод-вывод (dart:io) » Directory » create
функция 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);
}
});
}