// traverse traverse a VNode 1 level at a time down the tree.
traverse traverse a VNode 1 level at a time down the tree.
// traverse traverse a VNode 1 level at a time down the tree .
func (vn *VNode) traverse(steps []string) (*VNode, error) {
	if len(steps) == 0 {
		return vn, nil
	}
	for _, step := range steps {
		p := filepath.Join(vn.Path, step)
		i := vn.GenChildID(p)
		link, err := vn.FindChild(i)
		if err != nil {
			return vn, err
		}
		vn = link
	}
	return vn, nil
}
func ( vn * VNode ) traverse ( steps [ ] string ) ( * VNode , error ) { if len ( steps ) == 0 { return vn , nil } for _ , step := range steps { p := filepath . Join ( vn . Path , step ) i := vn . GenChildID ( p ) link , err := vn . FindChild ( i ) if err != nil { return vn , err } vn = link } return vn , nil }
traverse traverse a VNode 1 level at a time down the tree.
traverse traverse a VNode 1 level at a time down the tree .