golang zip 操作示例

下面的代码,来之golang的示例源码,其中涉及的常见zip文件,修改了部分代码,

在ExampleWriter中添加了如下

fw, err := os.Create("/home/xxx/mem_sub/go/z.zip")
    if err != nil {
        //panic(err)
  fmt.Println(err)
  return
    }
    defer fw.Close()
屏蔽了以下部分

// Create a buffer to write our archive to.
//	buf := new(bytes.Buffer)

使之能够创建看的见的zip文件


package main
import (
 "archive/zip"
//	"bytes"
 "fmt"
 "io"
 "log"
 "os"
)
func ExampleWriter() {
 
 fw, err := os.Create("/home/xxx/mem_sub/go/z.zip")
    if err != nil {
        //panic(err)
  fmt.Println(err)
  return
    }
    defer fw.Close()
 
 // Create a buffer to write our archive to.
//	buf := new(bytes.Buffer)
 // Create a new zip archive.
 w := zip.NewWriter(fw)
 // Add some files to the archive.
 var files = []struct {
  Name, Body string
 }{
  {"readme.txt", "This archive contains some text files."},
  {"gopher.txt", "Gopher names:\nGeorge\nGeoffrey\nGonzo"},
  {"todo.txt", "Get animal handling licence.\nWrite more examples."},
 }
 for _, file := range files {
  f, err := w.Create(file.Name)
  if err != nil {
   log.Fatal(err)
  }
  _, err = f.Write([]byte(file.Body))
  if err != nil {
   log.Fatal(err)
  }
 }
 // Make sure to check the error on Close.
 err = w.Close()
 if err != nil {
  log.Fatal(err)
 }
}
func ExampleReader() {
 // Open a zip archive for reading.
 r, err := zip.OpenReader("ss.zip")
 if err != nil {
  log.Fatal(err)
 }
 defer r.Close()
 // Iterate through the files in the archive,
 // printing some of their contents.
 for _, f := range r.File {
  fmt.Printf("Contents of %s:\n", f.Name)
  rc, err := f.Open()
  if err != nil {
   log.Fatal(err)
  }
  _, err = io.CopyN(os.Stdout, rc, 68)
  if err != nil {
   log.Fatal(err)
  }
  rc.Close()
  fmt.Println()
 }
 // Output:
 // Contents of README:
 // This is the source code repository for the Go programming language.
}
func main(){
 ExampleWriter()
 //ExampleReader()
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值