go 压缩文件操作
来源:互联网 发布:linux连接数 编辑:程序博客网 时间:2024/06/05 18:51
go 压缩文件操作
import ( "archive/zip" "bytes" "io" "io/ioutil" "os" "path/filepath")// unzip 解压文件 archive zip文件路径,target 解压路径func unzip(archive, target string) error { reader, err := zip.OpenReader(archive) if err != nil { return err } if err := os.MkdirAll(target, 0755); err != nil { return err } for _, file := range reader.File { path := filepath.Join(target, file.Name) if file.FileInfo().IsDir() { os.MkdirAll(path, file.Mode()) continue } fileReader, err := file.Open() if err != nil { return err } defer fileReader.Close() targetFile, err := os.OpenFile(path, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, file.Mode()) if err != nil { return err } defer targetFile.Close() if _, err := io.Copy(targetFile, fileReader); err != nil { return err } } return nil}// isZip 判定是不是zip文件func isZip(zipPath string) bool { f, err := os.Open(zipPath) if err != nil { return false } defer f.Close() buf := make([]byte, 4) if n, err := f.Read(buf); err != nil || n < 4 { return false } return bytes.Equal(buf, []byte("PK\x03\x04"))}// CompressZip 压缩文件 target:压缩后的文件路径 target:要压缩文件的路径func CompressZip(archive, target string) error { //获取源文件列表 f, err := ioutil.ReadDir(target) if err != nil { return err } fzip, _ := os.Create(archive) w := zip.NewWriter(fzip) defer w.Close() for _, file := range f { fw, _ := w.Create(file.Name()) filecontent, err := ioutil.ReadFile(target + file.Name()) if err != nil { return err } _, err = fw.Write(filecontent) if err != nil { return err } } return nil}
压缩文件包推荐
https://github.com/mholt/archiver
import "github.com/mholt/archiver"// 压缩文件err := archiver.Zip.Make("output.zip", []string{"file.txt", "folder"})// 判断文件是不是zip压缩包isZip := archiver.Zip.Match("input.zip")if isZip { fmt.Println("此文件不是压缩包") return}// 解压文件err := archiver.Zip.Open("input.zip", "output_folder")
阅读全文
0 0
- go 压缩文件操作
- C#操作压缩文件
- Linux压缩文件的操作
- linux之压缩文件,查看压缩文件,解压文件的操作命令
- 压缩文件
- 压缩文件
- 压缩文件
- 压缩文件
- 压缩文件
- 压缩文件
- 压缩文件
- 压缩文件
- 压缩文件:
- 压缩文件
- 压缩文件
- unix解压文件和压缩文件操作
- 在cygwin中操作rar压缩文件
- python文件操作(三)之压缩文件
- Vijos P1077 克隆龙
- CIA3 Sometimes Naive(莫比乌斯反演+积性函数前缀和)
- hive演示
- HDU 5270 ZYB loves Xor II 异或,贡献,双指针.
- INNER JOIN 数据库查询
- go 压缩文件操作
- Remove Duplicates from Sorted Array
- HDU 4300 Clairewd’s message (方法巧妙)
- ajax 发送post请求
- SparkSQL演示
- java基础知识(一)--DOS操作
- Java中TreeSet的用法
- 本地maven打包
- 第一章 为什么要学C语言