std/dirs
Source EditЭтот модуль реализует обработку каталогов.
Импорты
- paths, osdirs
Процедуры
proc createDir(dir: Path) {.inline, ...tags: [WriteDirEffect, ReadDirEffect], raises: [OSError, IOError], forbids: [].}-
Создаёт каталог
dir.Каталог может содержать несколько подкаталогов, которые ещё не существуют. Полный путь создаётся. Если это не удаётся, генерируется исключение
OSError.Процедура не завершается ошибкой, если каталог уже существует, так как в большинстве случаев это не указывает на ошибку.
См. также:
Source Edit proc existsOrCreateDir(dir: Path): bool {.inline, ...tags: [WriteDirEffect, ReadDirEffect], raises: [OSError, IOError], forbids: [].}-
Проверяет, существует ли каталог
dir, и создаёт его в противном случае.Не создаёт родительские каталоги (генерирует исключение
OSError, если родительские каталоги не существуют). Возвращаетtrue, если каталог уже существует, иfalse, в противном случае.См. также:
Source Edit proc moveDir(source, dest: Path) {.inline, ...tags: [ReadIOEffect, WriteIOEffect], raises: [OSError, IOError], forbids: [].}-
Перемещает каталог из
sourceвdest.Символические ссылки не отслеживаются: если
sourceсодержит символические ссылки, они сами перемещаются, а не их целевые объекты.Если это не удаётся, генерируется исключение
OSError.См. также:
Source Edit proc removeDir(dir: Path; checkDir = false) {.inline, ...tags: [WriteDirEffect, ReadDirEffect], raises: [OSError], forbids: [].}-
Удаляет каталог
dir, включая все подкаталоги и файлы вdir(рекурсивно).Если это не удаётся, генерируется исключение
OSError. Это не приводит к ошибке, если каталог никогда не существовал в первую очередь, если толькоcheckDir= true.См. также:
Source Edit
Итераторы
iterator walkDir(dir: Path; relative = false; checkDir = false; skipSpecial = false): tuple[kind: PathComponent, path: Path] {. ...tags: [ReadDirEffect], raises: [OSError], forbids: [].}-
Обходит каталог
dirи возвращает каждый каталог или файл вdir. Возвращается тип компонента и полный путь для каждого элемента.Обход не рекурсивный.
- Если
relativeравно true (по умолчанию: false), результирующий путь сокращается, чтобы быть относительным кdir, в противном случае возвращается полный путь. - Если
checkDirравно true,OSErrorгенерируется, когдаdirне существует. - Если
skipSpecialравно true, то (кроме всех каталогов) на Unix будут возвращаться только обычные файлы (без специальных объектов «файл», таких как FIFO, файлы устройств и т. д.).
- Если
iterator walkDirRec(dir: Path; yieldFilter = {pcFile}; followFilter = {pcDir}; relative = false; checkDir = false; skipSpecial = false): Path {. ...tags: [ReadDirEffect], raises: [OSError], forbids: [].}-
Рекурсивно обходит каталог
dirи возвращает каждый файл или каталог вdir.Параметры
relative,checkdir,skipSpecialописаны в описании итератора walkDir.Предупреждение: Изменение структуры каталога во время обхода итератором может привести к неопределённому поведению!Обход рекурсивный.
followFilterконтролирует поведение итератора:yieldFilter значение pcFileвозвращает реальные файлы (по умолчанию) pcLinkToFileвозвращает символические ссылки на файлы pcDirвозвращает реальные каталоги pcLinkToDirвозвращает символические ссылки на каталоги followFilter значение pcDirотслеживает реальные каталоги (по умолчанию) pcLinkToDirотслеживает символические ссылки на каталоги См. также:
Source Edit
© 2006–2024 Andreas Rumpf
Licensed under the MIT License.
https://nim-lang.org/docs/dirs.html