code: func (d *Data) BindwithFiles(procs int) error {
  
  	fmt.Println("\nbinding with files...")
  
  	filesize := d.filesize
  	filename := d.filename
  	dirname := d.dirname
  
  	fh, err := os.Create(d.fullfilename)
  	if err != nil {
  		return errors.Wrap(err, "failed to create a file in download location")
  	}
  	defer fh.Close()
  
  	bar := pb.New64(int64(filesize))
  	bar.Start()
  
  	var f string
  	for i := 0; i < procs; i++ {
  		f = fmt.Sprintf("%s/%s.%d.%d", dirname, filename, procs, i)
  		subfp, err := os.Open(f)
  		if err != nil {
  			return errors.Wrap(err, "failed to open "+f+" in download location")
  		}
  
  		proxy := bar.NewProxyReader(subfp)
  		io.Copy(fh, proxy)
  
  		// Not use defer
  		subfp.Close()
  
  		// remove a file in download location for join
  		if err := os.Remove(f); err != nil {
  			return errors.Wrap(err, "failed to remove a file in download location")
  		}
  	}
  
  	bar.Finish()
  
  	// remove download location
  	// RemoveAll reason: will create .DS_Store in download location if execute on mac
  	if err := os.RemoveAll(dirname); err != nil {
  		return errors.Wrap(err, "failed to remove download location")
  	}
  
  	fmt.Println("Complete")
  
  	return nil
  }
docs: // BindwithFiles function for file binding after split download