説明
ZIPファイル内にある全てのファイルの修正日を表示するにはarchive/zipパッケージを読み込ませます。その後、zip.OpenReader()を使ってファイル数を取得したいZIPファイルのパスを指定します。zip.OpenReader()の戻り値は多値になっています。ZIPファイルを正しく解析できた場合は最初の戻り値にファイルの情報を格納した配列が返されます。配列なのでlen()メソッドを使えばZIPファイル内に保存されているファイルの総数を求めることができます。次にファイルの総数分だけforを使って繰り返します。
zip.OpenReader()によって得られたファイル情報はFile配列に入っており、修正日はModTime()で取得することができます。ModTime()の戻り値はtime.Timeの形式になっています。サンプルでは%vとすることで日付に対応した形式が表示されるようにしてあります。
package main
import (
"fmt"
"os"
"archive/zip"
)
func main() {
fdata, err := zip.OpenReader("/data/flower.zip")
if err != nil {
os.Exit(1)
}
defer fdata.Close()
for i := 0; i<len(fdata.File); i++ {
f := fdata.File[i].Name
mt := fdata.File[i].ModTime()
fmt.Printf("%s : %v\n", f, mt)
}
}
実行結果