Библиотеки » Ввод-вывод (dart:io) » Directory » renameSync
функция Directory::renameSync
Переименование директорий в файловой системе
Синтаксис
Directory
Directory.renameSync
(String newPath)
Передаваемые параметры
String newPathВозвращаемое значение
DirectoryОписание
Метод renameSync
позволяет переименовать или переместить в новое место текующую директорию.
Данный метод выполняется последовательно, и пока не будет переименована директория, или не произойдет сбой, управление не будет возвращено в основной поток.
Если новое имя для директории указывает на уже существующую директорию, то существующая папка затирается. Если новое имя для директории указывает на уже существующий файл, то опреация прерывается и генерируется исключение типа DirectoryIOException
.
Заметки
Примеры использования:
import "dart:io";
void directoryRenameSync(Directory baseDirectory, RegExp from, String to) {
// получаем итератор для вложенных директорий
DirectoryLister lister = baseDirectory.list(recursive: true);
// назначаем обработчик для полученных директорий
lister.onDir = (String directory) {
// получим путь для директории
Path dirPath = new Path.fromNative(directory);
// извелекем непосредственно имя директории, без всего пути
String dirLast = dirPath.segments().last;
// сравниваем имя директории с регулярным выражением
if (from.hasMatch(dirLast)) {
print ("найдена директория - ${directory}");
// получаем путь до нашего каталога
List<String> segments = dirPath.segments();
segments[segments.length - 1] = dirLast.replaceAll(from, to);
// переименовываем папку
new Directory(directory).renameSync(Strings.join(segments, Platform.pathSeparator));
}
};
}
void main() {
// переименуем все директории "*test*" с помощью нашей функции directoryRenameSync
directoryRenameSync(new Directory("D:\\TEST\\bootstrap-2.1.1\\"), new RegExp(r"tests"), "tests.source");
}