code: func fcopy(src, dest string, info os.FileInfo) error {
  
  	if err := os.MkdirAll(filepath.Dir(dest), os.ModePerm); err != nil {
  		return err
  	}
  
  	f, err := os.Create(dest)
  	if err != nil {
  		return err
  	}
  	defer f.Close()
  
  	if err = os.Chmod(f.Name(), info.Mode()); err != nil {
  		return err
  	}
  
  	s, err := os.Open(src)
  	if err != nil {
  		return err
  	}
  	defer s.Close()
  
  	_, err = io.Copy(f, s)
  	return err
  }
docs: // fcopy is for just a file,
  // with considering existence of parent directory
  // and file permission.