РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1342 of 1593 menu

Функция zip.NewWriter

Функция zip.NewWriter создает новый объект zip.Writer, который используется для записи файлов в ZIP-архив. В качестве единственного параметра она принимает io.Writer, в который будут записываться сжатые данные. Функция возвращает указатель на zip.Writer, который позволяет добавлять файлы в архив с помощью методов Create или CreateHeader. После завершения работы с архивом необходимо вызвать метод Close для записи завершающей информации архива.

Синтаксис

zip.NewWriter(w io.Writer) *zip.Writer

Пример

Давайте создадим простой ZIP-архив с одним файлом:

package main import ( "archive/zip" "os" ) func main() { file, err := os.Create("archive.zip") if err != nil { panic(err) } defer file.Close() writer := zip.NewWriter(file) defer writer.Close() f, err := writer.Create("file.txt") if err != nil { panic(err) } _, err = f.Write([]byte("Hello, world!")) if err != nil { panic(err) } }

Пример

Давайте создадим ZIP-архив с несколькими файлами в разных директориях:

package main import ( "archive/zip" "os" ) func main() { file, err := os.Create("archive.zip") if err != nil { panic(err) } defer file.Close() writer := zip.NewWriter(file) defer writer.Close() files := []struct { name string data string }{ {"dir1/file1.txt", "Content of file 1"}, {"dir2/file2.txt", "Content of file 2"}, {"dir2/subdir/file3.txt", "Content of file 3"}, } for _, f := range files { w, err := writer.Create(f.name) if err != nil { panic(err) } _, err = w.Write([]byte(f.data)) if err != nil { panic(err) } } }

Пример

Давайте создадим ZIP-архив с настройками заголовков файлов:

package main import ( "archive/zip" "os" "time" ) func main() { file, err := os.Create("archive.zip") if err != nil { panic(err) } defer file.Close() writer := zip.NewWriter(file) defer writer.Close() header := &zip.FileHeader{ Name: "file.txt", Method: zip.Deflate, Modified: time.Now(), } w, err := writer.CreateHeader(header) if err != nil { panic(err) } _, err = w.Write([]byte("Compressed data")) if err != nil { panic(err) } }

Смотрите также

  • функцию zip.Writer.Create,
    которая добавляет файл в ZIP-архив по имени
  • функцию zip.Writer.CreateHeader,
    которая добавляет файл с указанным заголовком
  • функцию zip.Writer.Close,
    которая завершает запись ZIP-архива
  • функцию zip.OpenReader,
    которая открывает существующий ZIP-архив для чтения
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить