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

Функция zip.OpenReader

Функция zip.OpenReader открывает ZIP-архив по указанному пути и возвращает указатель на структуру ReadCloser, которая позволяет читать содержимое архива. В первый параметр функция принимает строку с путем к ZIP-файлу. Возвращаемое значение содержит поле File - список файлов в архиве, и методы для закрытия архива. Функция возвращает ошибку, если не удалось открыть архив или он поврежден.

Синтаксис

zip.OpenReader(name)

Пример

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

package main import ( "archive/zip" "fmt" "log" ) func main() { r, err := zip.OpenReader("archive.zip") if err != nil { log.Fatal(err) } defer r.Close() for _, f := range r.File { fmt.Println(f.Name) } }

Результат выполнения кода:

"file1.txt" "file2.txt" "folder/file3.txt"

Пример

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

package main import ( "archive/zip" "fmt" "io" "log" "strings" ) func main() { r, err := zip.OpenReader("archive.zip") if err != nil { log.Fatal(err) } defer r.Close() for _, f := range r.File { if strings.HasSuffix(f.Name, ".txt") { rc, err := f.Open() if err != nil { log.Fatal(err) } defer rc.Close() data, err := io.ReadAll(rc) if err != nil { log.Fatal(err) } fmt.Printf("%s: %s\n", f.Name, string(data)) } } }

Результат выполнения кода:

"file1.txt: Hello World" "file2.txt: Go programming"

Пример

Давайте обработаем ошибку при попытке открыть несуществующий ZIP-архив:

package main import ( "archive/zip" "fmt" "log" ) func main() { r, err := zip.OpenReader("missing.zip") if err != nil { log.Printf("Failed to open archive: %v", err) return } defer r.Close() fmt.Println("Archive opened successfully") }

Результат выполнения кода:

"Failed to open archive: open missing.zip: no such file or directory"

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

  • функцию zip.NewReader,
    которая создает читатель ZIP-архива из байтового потока
  • структуру zip.File,
    которая представляет отдельный файл внутри ZIP-архива
  • метод zip.File.Open,
    который открывает файл для чтения из ZIP-архива
  • функцию zip.NewWriter,
    которая создает писатель для создания ZIP-архива
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить