加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

golang 打包文件

发布时间:2020-12-16 18:29:54 所属栏目:大数据 来源:网络整理
导读:package mainimport ("archive/tar""io""os""fmt")func main() {// 创建一个tar文件f,err := os.Create("test.tar")if err != nil {panic(err.Error())}defer f.Close()// 创建一个新的tar.Writer,向w中写入tw := tar.NewWriter(f)defer tw.Close()// 返回
package main

import (
	"archive/tar"
	"io"
	"os"

	"fmt"
)

func main() {
	// 创建一个tar文件
	f,err := os.Create("test.tar")
	if err != nil {
		panic(err.Error())
	}
	defer f.Close()

	// 创建一个新的tar.Writer,向w中写入
	tw := tar.NewWriter(f)
	defer tw.Close()

	// 返回一个文件的os.Fileinfo
	fileinfo,err := os.Stat("test.go")
	if err != nil {
		panic(err.Error())
	}

	// 利用fileinfo创建一个Header(Header代表tar档案文件里的单个头)
	hdr,err := tar.FileInfoHeader(fileinfo,"")
	if err != nil {
		fmt.Println(err)
	}

	// 写入一个文件头
	err = tw.WriteHeader(hdr)
	if err != nil {
		fmt.Println(err)
	}

	// 打开文件
	f1,err := os.Open("test.go")
	if err != nil {
		panic(err.Error())
	}

	// 将内容copy进入tar.Writer
	m,_ := io.Copy(tw,f1)

	fmt.Println(m)
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读