阅读量:1
在Golang中,你可以使用标准库中的archive/zip包来创建ZIP文件,从而压缩文件大小。以下是一个简单的示例,展示了如何使用Golang在Ubuntu系统上压缩一个文件夹:
package main
import (
"archive/zip"
"fmt"
"io"
"os"
"path/filepath"
)
func main() {
sourceFolder := "path/to/your/source/folder" // 替换为你要压缩的文件夹路径
zipFileName := "output.zip" // 输出的ZIP文件名
err := zipFolder(sourceFolder, zipFileName)
if err != nil {
fmt.Println("Error:", err)
} else {
fmt.Println("Successfully compressed the folder.")
}
}
func zipFolder(sourceFolder, zipFileName string) error {
zipFile, err := os.Create(zipFileName)
if err != nil {
return err
}
defer zipFile.Close()
zipWriter := zip.NewWriter(zipFile)
defer zipWriter.Close()
filepath.Walk(sourceFolder, func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
header, err := zip.FileInfoHeader(info)
if err != nil {
return err
}
header.Name, _ = filepath.Rel(sourceFolder, path)
if info.IsDir() {
header.Name += "/"
} else {
header.Method = zip.Deflate
}
writer, err := zipWriter.CreateHeader(header)
if err != nil {
return err
}
if !info.IsDir() {
file, err := os.Open(path)
if err != nil {
return err
}
defer file.Close()
_, err = io.Copy(writer, file)
if err != nil {
return err
}
}
return nil
})
return nil
}
将上述代码保存为main.go,然后在终端中运行以下命令来编译和运行程序:
go build main.go
./main
这将压缩指定的文件夹并将其保存为ZIP文件。请注意,这个示例仅适用于本地文件系统。如果你需要处理远程文件或URL,你可能需要使用其他库或方法。
以上就是关于“Golang Ubuntu打包如何压缩文件大小”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm