import "archive/zip"

ZIPアーカイブの読み込みを実装しています。

参照: http://www.pkware.com/documents/casestudies/APPNOTE.TXT

このパッケージは、ZIP64やディスクス分割をサポートしていません。

パッケージファイル

reader.go struct.go

変数

var (
    FormatError       = os.NewError("not a valid zip file")
    UnsupportedMethod = os.NewError("unsupported compression algorithm")
    ChecksumError     = os.NewError("checksum error")
)

File型

type File struct {
    FileHeader
    // contains unexported fields
}

(*File) Open関数

func (f *File) Open() (rc io.ReadCloser, err os.Error)

Openは、Fileの内容へのアクセスを提供するReadCloserを返します。

FileHeader型

type FileHeader struct {
    Name             string
    CreatorVersion   uint16
    ReaderVersion    uint16
    Flags            uint16
    Method           uint16
    ModifiedTime     uint16
    ModifiedDate     uint16
    CRC32            uint32
    CompressedSize   uint32
    UncompressedSize uint32
    Extra            []byte
    Comment          string
}

Reader型

type Reader struct {
    File    []*File
    Comment string
    // contains unexported fields
}

NewReader関数

func NewReader(r io.ReaderAt, size int64) (*Reader, os.Error)

NewReaderは、rから読み込みを行う新しいReaderを返します。これは、指定したバイトサイズを持っているとみなされます。

OpenReader関数

func OpenReader(name string) (*Reader, os.Error)

OpenReaderは、nameで指定したZipファイルをオープンし、Readerを返します。