функция Directory::createTempSync

Создание временной директории в файловой системе

Синтаксис

Directory
Directory.createTempSync

Возвращаемое значение

Directory

Описание

Метод createTempSync позволяет создать временную директорию на основе указанного пути.

Данный метод выполняется последовательно, и пока не будут создана необходимая директория, или не произойдет сбой, управление не будет возвращено в основной поток.

Временная директория создается но основе текущего пути, к которому добавляется некоторое количество произвольных символов. Если путь пустой, то создается временная директория в системном каталоге.

Если в пути указана не существующая директория на последнем уровне вложенности то создание временного каталого происходит нормально, потому что к последнему имени дописываются случайные символы и создается директория. А вот если в пути встречается несуществующая директория на более высоких уровнях вложенности то будет сгенерированна ошибка DirectoryIOException

Заметки

Примеры использования:


import "dart:io";

void main() {
  // создадим временный каталог внутри текущего
  Directory temporaryDir1 = new Directory("./temporary");

  // создадим директорию в файловой системе
  Directory dir1 = temporaryDir1.createTempSync();

  if (dir1.existsSync()) {
    // создание прошло успешно, директория создана
    // выведем путь на экран
    print(dir1.path);

    // будет выведен примерно следущий путь
    // ./temporary-03d441ad-55ca-11e2-bdf0-efbc588db635

    // удалим наш временный каталог
    dir1.deleteSync();
  }


  // создадим временный каталог в системной папке
  Directory temporaryDir2 = new Directory("");

  // создадим директорию в файловой системе
  Directory dir2 = temporaryDir2.createTempSync();

  if (dir2.existsSync()) {
    // создание прошло успешно, директория создана
    // выведем путь на экран
    print(dir2.path);

    // для платформы Microsoft Windows будет выведен примерно следующий путь
    // C:\Users\ADMIN\AppData\Local\Temp\tempdir-0dc4eecb-55cb-11e2-bdf0-efbc588db635

    // удалим наш временный каталог
    dir2.deleteSync();
  }
}
						

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