Czy ktoś wie, jak sprawdzić datę i czas dostępu do pliku? Funkcja zwraca zmodyfikowaną datę i godzinę i potrzebuję czegoś, co porównuje dostęp do daty z aktualną datą i czasem.Jak uzyskać ostatnio dostępną datę i godzinę pliku w Go?
Odpowiedz
Możesz użyć os.Stat, aby uzyskać strukturę FileInfo, która zawiera również ostatni czas dostępu (jak również ostatnią modyfikację i ostatni czas zmiany statusu).
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)
Po tym, można użyć time.Nanoseconds aby uzyskać aktualny czas (również w nanosekund od początku epoki Uniksa, 1 stycznia 1970 00:00:00 UTC). Aby uzyskać czas w nanosekund, po prostu odjąć te dwie wartości:
duration := time.Nanoseconds() - info.Atime_ns
To nie było poprawne od wersji 1.0. Możesz uzyskać atime w sposób nieprzenośny, patrząc na pole '' FileInfo '' Sys'] (https://golang.org/pkg/os/#FileInfo) (typ tego zależy od 'GOOS'). –
Alternatywnie, po Stat można też zrobić
statinfo.ModTime()
Również można użyć Format() na nim, powinno to potrzebne na przykład na serwerze internetowym
Pytanie dotyczy * dostępu * czasu, a nie mod-czasu. –
Odpowiedziałem na pytanie, na które odpowiedziałeś, więc ta odpowiedź dostaje ode mnie +1. Dziękuję Ci! – Shadoninja
Twoje pytania są specyficzne tylko dla 'języku Go' należy używać tylko odpowiedniego znacznika. Na przykład tag [tag: file] powinien być przeznaczony tylko dla pytań specyficznych dla plików. –