vsphere/internal/helper/folder/folder_helper.go
func (p RootPathParticle) PathFromNewRoot(inventoryPath string, newParticle RootPathParticle, relative string) (string, error) {
	rootPath, err := p.NewRootFromPath(inventoryPath, newParticle)
	if err != nil {
		return inventoryPath, err
	}
	return path.Clean(fmt.Sprintf("%s/%s", rootPath, relative)), nil
}
func (p RootPathParticle) PathFromNewRoot(inventoryPath string, newParticle RootPathParticle, relative string) (string, error) {
	rootPath, err := p.NewRootFromPath(inventoryPath, newParticle)
	if err != nil {
		return inventoryPath, err
	}
	return path.Clean(fmt.Sprintf("%s/%s", rootPath, relative)), nil
}
func ( p RootPathParticle ) PathFromNewRoot ( inventoryPath string , newParticle RootPathParticle , relative string ) ( string , error ) { rootPath , err := p . NewRootFromPath ( inventoryPath , newParticle ) if err != nil { return inventoryPath , err } return path . Clean ( fmt . Sprintf ( " " , rootPath , relative ) ) , nil }
// PathFromNewRoot takes the datacenter path for a specific entity, and then
// appends the new particle supplied with the new relative path.
//
// As an example, consider a supplied host path "/dc1/host/cluster1/esxi1", and
// a supplied datastore folder relative path of "/foo/bar".  This function will
// split off the datacenter section of the path (/dc1) and combine it with the
// datastore folder with the proper delimiter. The resulting path will be
// "/dc1/datastore/foo/bar".
PathFromNewRoot takes the datacenter path for a specific entity and then appends the new particle supplied with the new relative path . As an example consider a supplied host path / dc1 / host / cluster1 / esxi1 and a supplied datastore folder relative path of / foo / bar . This function will split off the datacenter section of the path ( / dc1 ) and combine it with the datastore folder with the proper delimiter . The resulting path will be / dc1 / datastore / foo / bar .