如何在Nim中触摸文件/更新磁盘上的修改时间?

时间:2018-08-21 13:36:50

标签: fileinfo nim filemtime

我想更新Nim中某些文件的修改时间,而无需实际修改它们,例如Unix touch。我看到有一个os.getLastModificationTime函数,或更广泛地说是os.getFileInfo,但是没有看到相应的set函数。

您如何在Nim中触摸文件? (如果平台很重要,很遗憾,我目前正在Windows上工作。)

2 个答案:

答案 0 :(得分:4)

不幸的是,这是当前Nim版本0.18.0中特定于系统的。在posix上,您可以这样做:

import posix
utimes("filename", nil)

在下一发行版中,您可以使用独立于平台的os.setLastModificationTimehttps://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(),并将更改accessmodifychange的3个文件时间戳。 在Windows上,“幕后”的细节将有所不同,读取源代码我认为只会更改“上次写入时间”,而不会更改“上次访问时间”。