如果是用第三方压缩程序压缩的文件或文件夹名称不是英文,用以下函数解压后就会乱码。
太菜不知如何不乱码,求解。
func Unzip(src, dest string) error { reader, err := zip.OpenReader(src) if err != nil { return err } defer reader.Close() for _, f := range reader.File { rc, err := f.Open() if err != nil { log.Fatal(err) return err } defer rc.Close() fpath := filepath.Join(dest, f.Name) if f.FileInfo().IsDir() { err = os.MkdirAll(fpath, 0755) if err != nil { log.Fatal(err) return err } } else { var fdir string if lastIndex := strings.LastIndex(fpath, string(os.PathSeparator)); lastIndex > -1 { fdir = fpath[:lastIndex] } if len(f.Name) < 150 { err = os.MkdirAll(fdir, 0755) if err != nil { log.Fatal(err) return err } fi, err := os.OpenFile(fpath, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, f.Mode()) if err != nil { log.Fatal(err) return err } defer fi.Close() _, err = io.Copy(fi, rc) if err != nil { log.Fatal(err) return err } } } } return nil }
付费偷看金额在0.1-10元之间
一周热门 更多>