Метод deleteSync
Метод deleteSync класса File синхронно удаляет
файл или символическую ссылку с файловой системы.
В отличие от асинхронного метода delete, данный метод
не возвращает Future, а выполняет операцию сразу
и блокирует выполнение программы до её завершения.
В первый параметр мы передаем именованный аргумент
recursive - если он равен true, то удаление
выполняется рекурсивно (для директорий). По умолчанию
этот параметр равен false. Если удаляемый файл
не существует, метод выбрасывает исключение
FileSystemException.
Синтаксис
file.deleteSync({bool recursive = false})
Пример
Давайте создадим файл, а затем удалим его
синхронно с помощью метода deleteSync:
import 'dart:io';
void main()
{
File file = File('test.txt');
file.createSync();
print(file.existsSync());
file.deleteSync();
print(file.existsSync());
}
Результат выполнения кода:
true
false
Пример
Давайте попробуем удалить файл, которого не существует.
Метод deleteSync выбросит исключение:
import 'dart:io';
void main()
{
File file = File('missing.txt');
try
{
file.deleteSync();
}
on FileSystemException catch (e)
{
print('File not found');
}
}
Результат выполнения кода:
"File not found"
Пример
Давайте удалим директорию вместе со всем её
содержимым, передав параметр recursive равным
true:
import 'dart:io';
void main()
{
Directory dir = Directory('temp');
dir.createSync();
File file = File('temp/test.txt');
file.createSync();
dir.deleteSync(recursive: true);
print(dir.existsSync());
}
Результат выполнения кода:
false
Смотрите также
-
метод
delete,
который асинхронно удаляет файл -
метод
existsSync,
который синхронно проверяет существование файла -
метод
create,
который создает файл -
класс
File,
который представляет файл в файловой системе