std/tempfiles
Source EditЭтот модуль создаёт временные файлы и каталоги.
Экспериментальный API, может быть изменён.
Импорты
- os, random, winlean
Процедуры
proc createTempDir(prefix, suffix: string; dir = ""): string {. ...raises: [OSError, IOError], tags: [ReadEnvEffect, ReadIOEffect, WriteDirEffect, ReadDirEffect], forbids: [].}-
Создаёт новый временный каталог в каталоге
dir.Это генерирует имя каталога с помощью
genTempPath(prefix, suffix, dir), создаёт каталог и возвращает его, возможно, после повторной попытки, чтобы убедиться, что он ещё не существует.Если не удаётся создать временный каталог, будет поднято исключение
OSError.Примечание: Ответственность за удаление каталога лежит на вызывающей стороне, когда он больше не нужен.Пример:
import std/os doAssertRaises(OSError): discard createTempDir("", "", "nonexistent") let dir = createTempDir("tmpprefix_", "_end") # dir looks like: getTempDir() / "tmpprefix_YEl9VuVj_end" assert dirExists(dir) removeDir(dir)Source Edit proc createTempFile(prefix, suffix: string; dir = ""): tuple[cfile: File, path: string] {....raises: [OSError], tags: [ReadEnvEffect, ReadIOEffect], forbids: [].}-
Создаёт новый временный файл в каталоге
dir.Это генерирует имя файла с помощью
genTempPath(prefix, suffix, dir)и возвращает дескриптор открытого файла и путь к этому файлу, возможно, после повторной попытки, чтобы убедиться, что он ещё не существует.Если не удаётся создать временный файл, будет поднято исключение
OSError.Примечание: Ответственность за закрытиеresult.cfileи удалениеresult.fileлежит на вызывающей стороне, когда он больше не нужен.Пример:
import std/os doAssertRaises(OSError): discard createTempFile("", "", "nonexistent") let (cfile, path) = createTempFile("tmpprefix_", "_end.tmp") # path looks like: getTempDir() / "tmpprefix_FDCIRZA0_end.tmp" cfile.write "foo" cfile.setFilePos 0 assert readAll(cfile) == "foo" close cfile assert readFile(path) == "foo" removeFile(path)Source Edit
© 2006–2024 Andreas Rumpf
Licensed under the MIT License.
https://nim-lang.org/docs/tempfiles.html