2011-11-28 29 views
7

Có ai biết cách kiểm tra ngày và giờ truy cập tệp không? Hàm trả về ngày và giờ đã sửa đổi và tôi cần một cái gì đó so sánh thời gian ngày được truy cập với ngày giờ hiện tại.Cách nhận ngày và giờ truy cập cuối cùng của tệp trong Go?

+1

câu hỏi của bạn là chỉ dành riêng cho các 'Go' ngôn ngữ xin vui lòng chỉ sử dụng các thẻ có liên quan. Ví dụ: thẻ [tag: file] chỉ dành cho các câu hỏi dành riêng cho tệp. –

Trả lời

11

Bạn có thể sử dụng os.Stat để nhận cấu trúc FileInfo cũng chứa thời gian truy cập cuối cùng (cũng như thời gian thay đổi trạng thái cuối cùng và lần thay đổi cuối cùng).

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) 

Sau đó, bạn có thể sử dụng time.Nanoseconds để có được thời gian hiện tại (cũng trong nano giây kể từ khi kỷ nguyên unix, 01 Tháng Một 1970 00:00:00 UTC). Để có được thời gian trong nano giây, chỉ trừ hai giá trị:

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

Điều này đã không chính xác kể từ khi Go 1.0. Bạn có thể nhận được atime một cách không di động bằng cách nhìn vào trường '' '' '' sys '' (https://golang.org/pkg/os/#FileInfo) (loại phụ thuộc vào 'GOOS'). –

7

Ngoài ra, sau khi Stat bạn cũng có thể làm

statinfo.ModTime() 

Ngoài ra bạn có thể sử dụng Format() vào nó, bạn nên cần nó ví dụ cho một máy chủ web

thấy https://gist.github.com/alexisrobert/982674

+2

Câu hỏi hỏi về * truy cập * thời gian, không phải thời gian mod. –

+0

Tôi googled câu hỏi mà bạn đã trả lời, vì vậy câu trả lời này nhận được +1 từ tôi. Cảm ơn bạn! – Shadoninja

Các vấn đề liên quan