Skip to content

Latest commit

 

History

History
54 lines (43 loc) · 2.14 KB

stdlib-zip.md

File metadata and controls

54 lines (43 loc) · 2.14 KB

Zip Module Documentation

The zip module provides functions for creating and reading ZIP archives.

Functions

  • writer(): Returns a writer object for creating a new ZIP archive. The writer object provides methods for adding files, setting comment, closing, and flushing the ZIP archive.

    • create(filename, content): Creates a new file entry in the ZIP archive with the specified filename and content.
    • bytes(): Returns the byte representation of the created ZIP archive.
    • close(): Closes the ZIP archive writer.
    • flush(): Flushes any buffered data to the underlying writer.
    • set_comment(comment): Sets the comment for the ZIP archive.
    • set_offset(offset): Sets the offset for the next file entry in the ZIP archive.
  • reader(data): Returns a reader object for reading a ZIP archive from the provided byte slice.

    • files: Returns an array containing information about each file in the ZIP archive.

      • name: Name of the file.
      • comment: Comment associated with the file.
      • non_utf8: Indicates whether the file name is not encoded in UTF-8.
      • creator_version: Version of the software that created the ZIP archive.
      • reader_version: Version needed to read the ZIP archive.
      • method: Compression method used for the file.
      • modified: Last modification time of the file.
      • modified_time: Modified time in seconds since January 1, 1970 UTC.
      • modified_date: Modified date in MS-DOS date format.
      • crc32: CRC-32 checksum of the file contents.
      • compressed_size: Size of the compressed file data.
      • uncompressed_size: Size of the uncompressed file data.
      • extra: Extra data associated with the file.
      • read(): Function to read the content of the file.
    • comment: Comment associated with the ZIP archive.

Example Usage

import "zip"
import "io"

// Create a new ZIP archive
writer := zip.writer()
writer.create("hello.txt", "hello world")
writer.set_comment("this is a comment!")
writer.close()

io.writefile("hello.zip", writer.bytes())

// Reading ZIP
reader := zip.reader(io.readfile("hello.zip"))

for file in reader.files {
	println(file.read())
}