Reputation: 7985
I'd like to update the modification time of some files in Nim, without actually modifying them, like Unix touch
. I see there is an os.getLastModificationTime
function, or more broadly os.getFileInfo
, but I do not see corresponding set functions.
How do you touch a file in Nim? (If platform matters, I am currently working on Windows, sadly.)
Upvotes: 2
Views: 495
Reputation: 20467
Piggybacking on def-'s answer, here is a complete example showing how you can update file modification time to "now", of file passed as first argument:
import os
import times
let file = commandLineParams()[0]
setLastModificationTime(file, now().toTime())
Behind the scenes (with Nim 0.19) on posix systems this delegates to posix.utimes()
and will changes the 3 file timestamps for access
, modify
, change
.
On Windows the "behind the scenes" details will differ, reading source code I think it will only change "last write time", not "last access time".
Upvotes: 4
Reputation: 5393
Unfortunately that is system specific in the current Nim version 0.18.0. On posix you'd do:
import posix
utimes("filename", nil)
In the next release you can use the platform independent os.setLastModificationTime
: https://github.com/nim-lang/Nim/pull/7543
Upvotes: 4