RosettaCodeData/Task/File-modification-time/Wren/file-modification-time-1.wren

34 lines
882 B
Plaintext

/* File_modification_time_wren */
import "./date" for Date
foreign class Stat {
construct new(fileName) {}
foreign atime
foreign mtime
}
foreign class Utimbuf {
construct new(actime, modtime) {}
foreign utime(fileName)
}
// gets a Date object from a Unix time in seconds
var UT2Date = Fn.new { |ut| Date.unixEpoch.addSeconds(ut) }
Date.default = "yyyy|-|mm|-|dd| |hh|:|MM|:|ss" // default format for printing
var fileName = "temp.txt"
var st = Stat.new(fileName)
System.print("'%(fileName)' was last modified on %(UT2Date.call(st.mtime)).")
var utb = Utimbuf.new(st.atime, 0) // atime unchanged, mtime = current time
if (utb.utime(fileName) < 0) {
System.print("There was an error changing the file modification time.")
return
}
st = Stat.new(fileName) // update info
System.print("File modification time changed to %(UT2Date.call(st.mtime)).")