Documentation
¶
Index ¶
- Variables
- type Entry
- type Package
- func (p *Package) Close() error
- func (p *Package) Entries() []Entry
- func (p *Package) Has(fileName string) bool
- func (p *Package) Lookup(fileName string) (Entry, bool)
- func (p *Package) Open(fileName string) (io.ReadCloser, error)
- func (p *Package) OpenEntry(entry Entry) (io.ReadCloser, error)
- func (p *Package) Read(fileName string) ([]byte, error)
- func (p *Package) ReadLimit(fileName string, limit int64) ([]byte, error)
- func (p *Package) ReadXML(fileName string, target any) error
- func (p *Package) ReadXMLLimit(fileName string, target any, limit int64) error
- func (p *Package) WalkEntries(fn func(Entry) bool) error
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // ErrReadLimitExceeded 表示读取的解压后内容超过了大小限制。 ErrReadLimitExceeded = errors.New("读取内容超过大小限制") // ErrPackageClosed 表示 ZIP 包已经关闭。 ErrPackageClosed = errors.New("ZIP 包已经关闭") )
Functions ¶
This section is empty.
Types ¶
type Entry ¶
type Entry struct {
// Name 是 ZIP 条目的原始名称。
Name string
// Path 是去除开头斜杠后的包内查找路径。
Path string
// CompressedSize 是条目的压缩后大小。
CompressedSize uint64
// UncompressedSize 是条目的解压后大小。
UncompressedSize uint64
// Method 是 ZIP 压缩方法编号。
Method uint16
// CRC32 是条目的 CRC-32 校验值。
CRC32 uint32
// Modified 是条目的修改时间。
Modified time.Time
// Mode 是条目的文件模式。
Mode fs.FileMode
// IsDir 表示条目是否为目录。
IsDir bool
// contains filtered or unexported fields
}
Entry 描述 OFD ZIP 包中的一个条目。
type Package ¶
type Package struct {
// contains filtered or unexported fields
}
Package 提供 OFD ZIP 包的条目索引和内容读取能力。
func OpenReader ¶
OpenReader 从读取器中读取全部数据并打开 OFD ZIP 包。 调用方仍负责关闭传入的 reader。
func (*Package) Close ¶
Close 关闭由 OpenFile 创建的 ZIP 包,并释放其文件句柄。 对 OpenBytes 和 OpenReader 创建的对象,Close 没有额外操作。
func (*Package) Lookup ¶
Lookup 查找指定名称的 ZIP 条目元数据。 如果多个条目规范化后路径相同,返回 ZIP 中最后出现的条目;全部条目可通过 Entries 获取。
func (*Package) Open ¶
func (p *Package) Open(fileName string) (io.ReadCloser, error)
Open 打开 ZIP 包内的条目,返回解压后的读取器。
func (*Package) OpenEntry ¶
func (p *Package) OpenEntry(entry Entry) (io.ReadCloser, error)
OpenEntry 打开 Entries 返回的指定 ZIP 条目。 与 Open 不同,OpenEntry 不会因条目名称重复而切换到其他条目。
func (*Package) ReadXMLLimit ¶
ReadXMLLimit 解析 ZIP 包内的 XML 文件,并限制最大字节数。 limit 为 0 时表示不限制。
Click to show internal directories.
Click to hide internal directories.