Метод rename
Метод rename класса Directory переименовывает
директорию. Метод принимает один параметр - новый путь
к директории в виде строки. Возвращает объект Directory,
который представляет директорию по новому пути. Если директория
с новым именем уже существует или исходная директория
не найдена, будет выброшено исключение.
Метод rename является асинхронным и возвращает
объект Future. Для синхронного переименования
используйте метод renameSync.
Синтаксис
Directory.rename(String newPath)
Пример
Давайте создадим директорию, а затем переименуем её:
import 'dart:io';
void main() async
{
Directory dir = Directory('old_folder');
await dir.create();
print('Директория создана');
Directory renamed = await dir.rename('new_folder');
print('Переименовано в: ${renamed.path}');
}
Результат выполнения кода:
"Директория создана"
"Переименовано в: new_folder"
Пример
Давайте проверим, что старая директория больше не существует, а новая доступна:
import 'dart:io';
void main() async
{
Directory dir = Directory('abcde');
await dir.create();
Directory renamed = await dir.rename('12345');
bool oldExists = await dir.exists();
bool newExists = await renamed.exists();
print('Старая существует: $oldExists');
print('Новая существует: $newExists');
}
Результат выполнения кода:
"Старая существует: false"
"Новая существует: true"
Пример
Давайте обработаем ошибку, если директория с новым именем уже существует:
import 'dart:io';
void main() async
{
Directory dir = Directory('abcde');
await dir.create();
Directory existing = Directory('12345');
await existing.create();
try
{
await dir.rename('12345');
}
catch (e)
{
print('Ошибка: $e');
}
}
Результат выполнения кода:
"Ошибка: FileSystemException: Cannot rename directory, path = 'abcde' (OS Error: Directory not empty, errno = 39)"