您的位置:首页 > 编程语言 > Go语言

golang zip 操作示例

2014-02-14 09:44 411 查看
下面的代码,来之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()
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: