Как перебрать файл / обновить время его модификации на диске в 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 детали "за кулисами" будут отличаться, при чтении исходного кода, я думаю, это изменит только "время последней записи", а не "время последнего доступа".