2011-11-28 6 views
7

¿Alguien sabe cómo buscar una fecha y hora de acceso a archivos? La función devuelve la fecha y hora modificadas y necesito algo que compare el tiempo de la fecha accedida con la fecha y hora actuales.¿Cómo se accede a la fecha y hora del último archivo en Ir?

+1

Sus preguntas son específicas sólo para el 'lenguaje Go' favor utilice únicamente la etiqueta correspondiente. Por ejemplo, la etiqueta [etiqueta: archivo] debe ser solo para preguntas específicas de archivos. –

Respuesta

11

Puede usar os.Stat para obtener una estructura FileInfo que también contiene la última hora de acceso (así como la última modificación y el último cambio de estado).

info, err := os.Stat("example.txt") 
if err != nil { 
    // TODO: handle errors (e.g. file not found) 
} 
// info.Atime_ns now contains the last access time 
// (in nanoseconds since the unix epoch) 

Después de eso, puede utilizar time.Nanoseconds para obtener la hora actual (también en nanosegundos desde la época UNIX, 1 de enero 1970 00:00:00 UTC). Para obtener la duración en nanosegundos, simplemente restar esos dos valores:

duration := time.Nanoseconds() - info.Atime_ns 
+3

Esto no ha sido correcto desde Go 1.0. Puede obtener el tiempo de forma no portátil examinando el campo ['Fileys'' Sys'] (https://golang.org/pkg/os/#FileInfo) (el tipo de eso depende de 'GOOS') –

7

Como alternativa, después de la Stat también se puede hacer

statinfo.ModTime() 

También se puede utilizar el formato() en él, en caso de necesitarla por ejemplo, para un servidor web

ver https://gist.github.com/alexisrobert/982674

+2

La pregunta se refiere a * access * time, no a mod-time. –

+0

Busqué en Google la pregunta que contestó, por lo que esta respuesta obtiene un +1 de mí. ¡Gracias! – Shadoninja

Cuestiones relacionadas