説明
ZIPファイル内にあるファイルのフラグを表示するにはarchive/zipパッケージを読み込ませます。その後、zip.OpenReader()を使ってファイル数を取得したいZIPファイルのパスを指定します。zip.OpenReader()の戻り値は多値になっています。ZIPファイルを正しく解析できた場合は最初の戻り値にファイルの情報を格納した配列が返されます。配列なのでlen()メソッドを使えばZIPファイル内に保存されているファイルの総数を求めることができます。次にファイルの総数分だけforを使って繰り返します。
zip.OpenReader()によって得られたファイル情報はFile配列に入っており、フラグはその中のFlagsに入っています。Flagsは数値(uint16)になっています。
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
flag := fdata.File[i].Flags
fmt.Printf("%s : %d\n", f, flag)
}
}
実行結果