Библиотеки » Ввод-вывод (dart:io) » Directory » exists
функция Directory::exists
Асинхронное определение существования директории
Синтаксис
Future[bool]
Directory.exists
Возвращаемое значение
Future[bool]Описание
Метод exists
позволяет асинхронно определить существует ли данная директория в файловой системе. После вызова данного метода, управление не блокируется, а сразу же возвращается в основной поток, и в качестве результата отдается объект типа Future
, который обрабатывает данные о существовании каталога.
Заметки
Примеры использования:
import "dart:io";
import "dart:math";
void main() {
// получим текущую директорию
Directory currentDir = new Directory.current();
currentDir.exists().onComplete((Future<bool> future) {
if (future.value) {
print("каталог ${currentDir.path} существует");
} else {
print("каталог ${currentDir.path} не сущестует");
}
});
// запустим паралельно еще несколько запросов на существование директорий
for(int i = 0; i < 10; i++) {
Directory dir = new Directory("/");
dir.exists().onComplete((Future<bool> future) {
if (future.value) {
print("каталог ${i} ${dir.path} существует");
} else {
print("каталог ${i} ${dir.path} не сущестует");
}
});
}
// запустим какой-нибудь относительно не длительный расчет
Random rnd = new Random();
double sum = 0.0;
for(int i = 0; i < 10000; i++) {
sum = sum + sin(rnd.nextInt(1000));
}
print("сумма - $sum");
/*
В результате получим примерно следующий вывод, причем множественные
проверки на существования каталога "/" могут оканчиваться не в том порядке
в котором начинались, потому что они шли паралельно.
сумма - 77.9108680023771
каталог D:\WORK\Projects.DART\example_core_collection существует
каталог 0 / существует
каталог 2 / существует
каталог 1 / существует
каталог 3 / существует
каталог 4 / существует
каталог 5 / существует
каталог 6 / существует
каталог 7 / существует
каталог 8 / существует
каталог 9 / существует
*/
}