我使用以下代码来压缩目录,问题是我想要在没有标题的情况下压缩目录内容,例如,我尝试使用basedir而没有成功
dir1
-file1
-file2
-file10
当我解压缩时,我只需要获取
-file1
-file2
-file10
这是代码
func Zip(params ...string) error {
zipfile, err := os.Create(params[1])
if err != nil {
return err
}
defer zipfile.Close()
archive := zip.NewWriter(zipfile)
defer archive.Close()
info, err := os.Stat(params[0])
if err != nil {
return err
}
var baseDir string
if info.IsDir(); len(params) > 2 {
baseDir = params[2]
} else {
baseDir = filepath.Base(params[0])
}
if baseDir != "" {
baseDir += "/"
}
filepath.Walk(params[0], func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
if info.IsDir() {
return nil
}
header, err := zip.FileInfoHeader(info)
if err != nil {
return err
}
if baseDir != "" {
header.Name = filepath.Join(strings.TrimPrefix(path, baseDir))
}
header.Method = zip.Deflate
writer, err := archive.CreateHeader(header)
if err != nil {
return err
}
file, err := os.Open(path)
if err != nil {
return err
}
defer file.Close()
_, err = io.Copy(writer, file)
return err
})
return err
}
我用它
Zip("../dir1","../"+zipname+".zip","dir1")
它拉链的问题也是目录名......我怎么能这样做?