функция 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");
}						

Официальная документация (английский)