我想更新Nim中某些文件的修改时间,而无需实际修改它们,例如Unix touch
。我看到有一个os.getLastModificationTime
函数,或更广泛地说是os.getFileInfo
,但是没有看到相应的set函数。
您如何在Nim中触摸文件? (如果平台很重要,很遗憾,我目前正在Windows上工作。)
答案 0 :(得分:4)
不幸的是,这是当前Nim版本0.18.0中特定于系统的。在posix上,您可以这样做:
import posix
utimes("filename", nil)
在下一发行版中,您可以使用独立于平台的os.setLastModificationTime
:https://github.com/nim-lang/Nim/pull/7543
答案 1 :(得分:3)
Pi带def-的答案,这是一个完整的示例,显示了如何将文件修改时间更新为“现在”(作为第一个参数传递的文件):
import os
import times
let file = commandLineParams()[0]
setLastModificationTime(file, now().toTime())
在posix系统上的幕后(使用Nim 0.19)将其委托给posix.utimes()
,并将更改access
,modify
,change
的3个文件时间戳。
在Windows上,“幕后”的细节将有所不同,读取源代码我认为只会更改“上次写入时间”,而不会更改“上次访问时间”。