溫馨提示×

用 Golang 在 CentOS 上打包文件怎么操作

小樊
109
2025-02-11 21:32:06
欄目: 編程語言

在 CentOS 上使用 Golang 打包文件,你可以使用 Go 的 archive/zip 包來創建 ZIP 文件。以下是一個簡單的示例,展示了如何使用 Go 在 CentOS 上創建一個包含指定文件的 ZIP 文件。

首先,確保你已經安裝了 Go。如果沒有安裝,可以通過以下命令安裝:

sudo yum install golang

然后,創建一個名為 main.go 的文件,并添加以下代碼:

package main

import (
	"archive/zip"
	"fmt"
	"io/ioutil"
	"os"
)

func main() {
	// 要打包的文件列表
	files := []string{"file1.txt", "file2.txt"}

	// 創建一個新的 ZIP 文件
	zipFile, err := os.Create("output.zip")
	if err != nil {
		fmt.Println("Error creating zip file:", err)
		return
	}
	defer zipFile.Close()

	// 創建一個 zip.Writer
	zipWriter := zip.NewWriter(zipFile)
	defer zipWriter.Close()

	// 遍歷要打包的文件列表
	for _, file := range files {
		err := addFileToZip(zipWriter, file)
		if err != nil {
			fmt.Println("Error adding file to zip:", err)
			return
		}
	}

	fmt.Println("ZIP file created successfully")
}

func addFileToZip(zipWriter *zip.Writer, filePath string) error {
	// 讀取要添加到 ZIP 文件中的文件
	fileData, err := ioutil.ReadFile(filePath)
	if err != nil {
		return err
	}

	// 創建一個新的 zip.FileHeader
	header, err := zip.FileInfoHeader(&zip.FileInfo{Name: filePath})
	if err != nil {
		return err
	}

	// 設置 zip.FileHeader 的模式(例如:普通文件、目錄等)
	header.Mode = 0600

	// 創建一個新的 zip.File
	zipFile, err := zipWriter.CreateHeader(header)
	if err != nil {
		return err
	}

	// 將文件數據寫入 zip.File
	_, err = zipFile.Write(fileData)
	if err != nil {
		return err
	}

	return nil
}

在這個示例中,我們創建了一個名為 output.zip 的 ZIP 文件,并將 file1.txtfile2.txt 添加到其中。你可以根據需要修改 files 列表以包含要打包的文件。

保存 main.go 文件后,在終端中運行以下命令來構建并運行程序:

go build main.go
./main

程序運行完成后,你應該會在當前目錄下看到一個名為 output.zip 的 ZIP 文件,其中包含了指定的文件。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女