code: func (z *Zip) AddDir(root, target string) error {
  	return filepath.Walk(root, func(path string, info os.FileInfo, err error) error {
  		if err != nil {
  			return err
  		}
  
  		if !info.Mode().IsRegular() {
  			return nil
  		}
  
  		file, err := os.Open(path)
  		if err != nil {
  			return err
  		}
  		defer file.Close()
  
  		rel, err := filepath.Rel(root, path)
  		if err != nil {
  			return err
  		}
  
  		archivePath := filepath.Join(target, rel)
  		return z.AddFile(archivePath, file)
  	})
  }
docs: // AddDir to target path in archive. This function doesn't follow symlinks.