ZIPファイル内にあるファイルの圧縮前と圧縮後のファイルサイズを表示する

説明

ZIPファイル内にあるファイルのフラグを表示するにはarchive/zipパッケージを読み込ませます。その後、zip.OpenReader()を使ってファイル数を取得したいZIPファイルのパスを指定します。zip.OpenReader()の戻り値は多値になっています。ZIPファイルを正しく解析できた場合は最初の戻り値にファイルの情報を格納した配列が返されます。配列なのでlen()メソッドを使えばZIPファイル内に保存されているファイルの総数を求めることができます。次にファイルの総数分だけforを使って繰り返します。
zip.OpenReader()によって得られたファイル情報はFile配列に入っており、圧縮後のサイズはCompressedSize64、圧縮前のサイズはUncompressedSize64に入っています。

サンプル [サンプルをダウンロード]

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
csize := fdata.File[i].CompressedSize64
ucsize := fdata.File[i].UncompressedSize64

fmt.Printf("%s : %d→%d\n", f, ucsize, csize)
} }

実行結果

Go言語を使ったプログラムの実行結果