国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Golang 中的 archive/zip 包詳解(三):常用函數(shù)

這篇具有很好參考價(jià)值的文章主要介紹了Golang 中的 archive/zip 包詳解(三):常用函數(shù)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

Golang 中的 archive/zip 包用于處理 ZIP 格式的壓縮文件,提供了一系列用于創(chuàng)建、讀取和解壓縮 ZIP 格式文件的函數(shù)和類型,使用起來(lái)非常方便,本文講解下常用函數(shù)。

zip.OpenReader

定義如下:

func OpenReader(name string) (*ReadCloser, error) 

打開一個(gè) ZIP 文件,并返回一個(gè) zip.ReadCloser 類型的對(duì)象。簡(jiǎn)單使用示例如下:

package main

import (
	"archive/zip"
	"fmt"
	"log"
)

func main() {
	zipFile := "path/to/myfile.zip"
	reader, err := zip.OpenReader(zipFile)
	if err != nil {
		log.Fatal(err)
	}
	defer reader.Close()

	// 讀取 ZIP 文件中的內(nèi)容
	for _, file := range reader.File {
		fmt.Println("文件名:", file.Name)
		fmt.Println("文件大小:", file.UncompressedSize64)
	}
}

zip.NewReader

定義如下:

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

創(chuàng)建一個(gè)新的?zip.Reader?類型的對(duì)象用于讀取ZIP文件,簡(jiǎn)單使用示例如下:

package main

import (
	"archive/zip"
	"fmt"
	"log"
	"strings"
)

func main() {
	zipData := getZipData() // 假設(shè)獲取到了 ZIP 文件的字節(jié)數(shù)據(jù)
	reader, err := zip.NewReader(strings.NewReader(string(zipData)), int64(len(zipData)))
	if err != nil {
		log.Fatal(err)
	}

	// 現(xiàn)在你可以使用 reader 對(duì)象來(lái)讀取 ZIP 文件中的內(nèi)容了
	for _, file := range reader.File {
		fmt.Println("文件名:", file.Name)
		fmt.Println("文件大小:", file.UncompressedSize64)
	}
}

func getZipData() []byte {
	// 假設(shè)這里是獲取 ZIP 文件的字節(jié)數(shù)據(jù)的邏輯
	// 這里只是示例,你需要根據(jù)實(shí)際情況來(lái)獲取 ZIP 文件的數(shù)據(jù)
	zipData := []byte{80, 75, 3, 4, 20, 0, 8, 8, 0, 0, 0, 0, 90, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
	return zipData
}

zip.NewWriter

定義如下:

func NewWriter(w io.Writer) *Writer 

創(chuàng)建一個(gè)新的 zip.Writer 類型的對(duì)象用于寫入 ZIP 文件。使用示例可以參考之前的第一篇文章《Golang 中的 archive/zip 包詳解(一):實(shí)現(xiàn) ZIP 壓縮與解壓》。

zip.FileInfoHeader

定義如下:

func FileInfoHeader(fi fs.FileInfo) (*FileHeader, error) 

將文件信息轉(zhuǎn)換為 zip.FileHeader 結(jié)構(gòu)體,以便設(shè)置 ZIP 文件中每個(gè)文件的屬性,簡(jiǎn)單使用示例如下:

package main

import (
	"archive/zip"
	"fmt"
	"log"
	"os"
)

func main() {
	fileName := "file.txt"
	fileInfo, err := os.Stat(fileName)
	if err != nil {
		log.Fatal(err)
	}

	header, err := zip.FileInfoHeader(fileInfo)
	if err != nil {
		log.Fatal(err)
	}

	fmt.Println("文件名:", header.Name)
	fmt.Println("文件大小:", header.UncompressedSize64)
}

zip.RegisterCompressor

定義如下:

func RegisterCompressor(method uint16, comp Compressor) 

用來(lái)注冊(cè)自定義的壓縮方法。

zip.RegisterDecompressor

定義如下:

func RegisterDecompressor(method uint16, dcomp Decompressor) 

用來(lái)注冊(cè)自定義的解壓縮方法。

小結(jié)

以上是 archive/zip 包中的一些常用函數(shù),通過使用這些函數(shù),可以方便地創(chuàng)建、讀取和修改 ZIP 文件。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-687152.html

到了這里,關(guān)于Golang 中的 archive/zip 包詳解(三):常用函數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 遇到:PytorchStreamReader failed reading zip archive: failed finding central 錯(cuò)誤應(yīng)該如何解決

    遇到 \\\"PytorchStreamReader failed reading zip archive: failed finding central directory\\\" 錯(cuò)誤是由于在讀取PyTorch模型時(shí)出現(xiàn)的問題。這個(gè)錯(cuò)誤通常發(fā)生在模型文件被損壞或不完整的情況下。要解決這個(gè)問題,你可以嘗試以下方法: 檢查模型文件:首先,確保你的模型文件沒有被損壞或刪除。你

    2024年02月08日
    瀏覽(19)
  • linux 中常用的壓縮和解壓縮命令詳解(tar zip)

    linux 中常用的壓縮和解壓縮命令詳解(tar zip)

    在工作中,涉及到文件傳輸,為了減少文件的體積和傳輸?shù)臅r(shí)間,經(jīng)常會(huì)對(duì)文件進(jìn)行壓縮,本文介紹了linux系統(tǒng)中常用的壓縮和解壓縮命令 .tar :簡(jiǎn)單封裝,被稱為歸檔文件,只是簡(jiǎn)單的將文件組裝到一個(gè).tar的文件內(nèi),并沒有太多文件體積的減少,僅僅是簡(jiǎn)單的封裝 .gz :壓

    2024年02月06日
    瀏覽(27)
  • linux下tar、gz、zip等常用解壓縮命令詳解

    tar是Unix和類Unix系統(tǒng)上的歸檔打包工具,可以將多個(gè)文件合并為一個(gè)文件,打包后尾綴.tar。目前,tar文件格式已經(jīng)成為POSIX標(biāo)準(zhǔn),最初是POSIX.1-1988,目前是POSIX.1-2001。本程序最初的設(shè)計(jì)目的是將文件備份到磁帶上(tape archive 磁帶存檔),因而得名tar。 tar的命令格式: tar[必要

    2024年02月15日
    瀏覽(29)
  • golang strings 常用函數(shù)

    官網(wǎng) https://pkg.go.dev/strings 這里介紹最常用的函數(shù) 1、Fields 以空格為字段分割符,返回[]string 2、Contains 是否包含子串,返回bool 3、Split ,以子串分割,返回[]string 4、ReplaceAll 替換 5、其他 -------------end

    2024年02月13日
    瀏覽(18)
  • 【深度學(xué)習(xí)】 Python 和 NumPy 系列教程(三):Python容器:1、列表List詳解(初始化、索引、切片、更新、刪除、常用函數(shù)、拆包、遍歷)

    【深度學(xué)習(xí)】 Python 和 NumPy 系列教程(三):Python容器:1、列表List詳解(初始化、索引、切片、更新、刪除、常用函數(shù)、拆包、遍歷)

    目錄 一、前言 二、實(shí)驗(yàn)環(huán)境 三、Python容器(Containers) 0、容器介紹 1、列表(List) 1. 初始化 a. 創(chuàng)建空列表 b. 使用現(xiàn)有元素初始化列表 c. 使用列表生成式 d. 復(fù)制列表 2. 索引和切片 a. 索引 b. 負(fù)數(shù)索引 c. 切片 3. 常用操作(更新、刪除) a. 更新單個(gè)元素 b. 更新切片 c. 刪除單

    2024年02月09日
    瀏覽(25)
  • Golang中context包基礎(chǔ)知識(shí)詳解

    目錄 什么是context.Context? 如何構(gòu)造context.Context對(duì)象? 衍生Context方法 使用context包需要注意的點(diǎn) context.Context是Golang標(biāo)準(zhǔn)庫(kù)提供的接口(context包對(duì)此接口有多種實(shí)現(xiàn)),該接口提供了四個(gè)抽象法: Deadline方法,返回context.Context被取消的時(shí)間點(diǎn),也就是需要完成任務(wù)的截止時(shí)間

    2024年02月02日
    瀏覽(22)
  • Golang 中的接口詳解

    什么是接口:接口(interface)定義了一個(gè)對(duì)象的行為規(guī)范,只定義規(guī)范不實(shí)現(xiàn),由具體的對(duì)象來(lái)實(shí)現(xiàn)規(guī)范的細(xì)節(jié)。 在Go語(yǔ)言中接口(interface)是一種類型,一種抽象的類型。 interface是一組method的集合,是duck-type programming的一種體現(xiàn)。 接口做的事情就像是定義一個(gè)協(xié)議(規(guī)則

    2024年02月13日
    瀏覽(28)
  • Golang 中的 map 詳解

    Golang 中的 map 詳解

    1、map 的定義 ??在計(jì)算機(jī)科學(xué)里,被稱為相關(guān)數(shù)組、map、符號(hào)表或者字典,是由一組 key, value 對(duì)組成的抽象數(shù)據(jù)結(jié)構(gòu),并且同一個(gè) key 只會(huì)出現(xiàn)一次。 ??兩個(gè)關(guān)鍵點(diǎn):map 是由 key-value 對(duì)組成的;key 只會(huì)出現(xiàn)一次。 ??map 的設(shè)計(jì)也被稱為 “The dictionary problem(字典問題)

    2024年02月14日
    瀏覽(24)
  • Golang zip壓縮及加密

    調(diào)用

    2024年02月09日
    瀏覽(14)
  • golang如何生成zip壓縮文件

    在Golang中,您可以使用標(biāo)準(zhǔn)庫(kù)中的compress/zip包來(lái)生成ZIP壓縮文件。下面是一個(gè)簡(jiǎn)單的示例代碼,演示如何使用該包來(lái)創(chuàng)建一個(gè)ZIP文件并將文件添加到其中: 在上述代碼中,我們首先創(chuàng)建了一個(gè)緩沖區(qū)(buf),用于存儲(chǔ)ZIP文件的內(nèi)容。然后,我們使用zip.NewWriter函數(shù)創(chuàng)建了一個(gè)

    2024年02月09日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包