2016-03-17 45 views
1

我试图解压缩一个.docx文件。名称“[Content_Types] .xml”的第一个文件已被提取。但后来我遇到了一个错误,如下所示:open _rels/.rels:权限被拒绝golang

开放前端/上传/ doc_data/_rels /的.rels:许可被拒绝

我们怎样才能为这个设置权限?

我使用的解压缩功能如下:

func Unzip(src, dest string) error { 
    r, err := zip.OpenReader(src) 
    if err != nil { 
     return err 
    } 
    defer r.Close() 
    for _, f := range r.File { 
     rc, err := f.Open() 
     if err != nil { 
      return err 
     } 
     defer rc.Close() 
     fpath := filepath.Join(dest, f.Name) 
     if f.FileInfo().IsDir() { 
      os.MkdirAll(fpath, f.Mode()) 
     } else { 
      var fdir string 
      if lastIndex := strings.LastIndex(fpath,string(os.PathSeparator)); lastIndex > -1 { 
       fdir = fpath[:lastIndex] 
      } 
      err = os.MkdirAll(fdir, f.Mode()) 
      if err != nil { 
       log.Fatal(err) 
       return err 
      } 
      f, err := os.OpenFile(
       fpath, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, f.Mode()) 
      if err != nil { 
       return err 
      } 
      defer f.Close() 
      _, err = io.Copy(f, rc) 
      if err != nil { 
       return err 
      } 
     } 
    } 
    return nil 
} 

回答