2011-11-28 20 views
7

誰もファイルのアクセス日時を確認する方法を知っていますか?この関数は変更された日付と時刻を返します。アクセスされた日付時刻と現在の日付と時刻を比較するものが必要です。Goでファイルの最終アクセス日時を取得する方法は?

+1

あなたの質問のみ 'Go'言語に固有のもののみ関連タグを使用してください参照してください。たとえば、[tag:file]タグは、ファイルに固有の質問用です。 –

答えて

11

os.Statを使用して、最終アクセス時刻(最終変更時刻と最終ステータス変更時刻も含む)を含むFileInfo構造体を取得することができます。

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) 

その後、あなたは(もUnixエポック、1970年1月1日00:00:00からナノ秒単位で)現在の時間を取得するためにtime.Nanosecondsを使用することができます。ナノ秒単位の期間を取得するには、単にこれら2つの値を引く:

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

Go 1.0以降はこれが正しくありません。 ['FileInfo'の' Sys'](https://golang.org/pkg/os/#FileInfo)フィールド( 'GOOS'に依存するタイプ)を調べることによって、移植性のない方法でatimeを得ることができます)。 –

7

また、統計後にあなたも

statinfo.ModTime() 

はまた、あなたがそれにフォーマットを()を使用することができます行うことができます、あなたはそれを必要とする必要がありますウェブサーバ

用などがhttps://gist.github.com/alexisrobert/982674

+2

*アクセス時間はmod-timeではなく、質問してください。 –

+0

私はあなたが答えた質問を尋ねたので、この答えは私から+1を得る。ありがとうございました! – Shadoninja

関連する問題