Как перебрать файл / обновить время его модификации на диске в Nim?

Я хотел бы обновить время модификации некоторых файлов в Nim, фактически не изменяя их, например Unix touch, Я вижу, что есть os.getLastModificationTime функция или в более широком смысле os.getFileInfo, но я не вижу соответствующих функций набора.

Как вы касаетесь файла в Nim? (Если платформа имеет значение, я в настоящее время работаю над Windows, к сожалению.)

2 ответа

Решение

К сожалению, это зависит от системы в текущей версии Nim 0.18.0. На posix вы бы сделали:

import posix
utimes("filename", nil)

В следующем выпуске вы можете использовать платформу независимо os.setLastModificationTime: https://github.com/nim-lang/Nim/pull/7543

В дополнение к ответу def-a, вот полный пример, показывающий, как вы можете обновить время модификации файла до "сейчас", файла, переданного в качестве первого аргумента:

import os
import times

let file = commandLineParams()[0]
setLastModificationTime(file, now().toTime())

За кулисами (с Nim 0.19) в системах posix этот делегат posix.utimes() и изменит 3 временных метки файла для access, modify, change, В Windows детали "за кулисами" будут отличаться, при чтении исходного кода, я думаю, это изменит только "время последней записи", а не "время последнего доступа".

Другие вопросы по тегам