code: function(root, path) {
  				if (path.indexOf(this.SEPARATOR) === 0) {
  					root = this.rootNode;
  					path = path.substring(1);
  				} else {
  					if (!root) {
  						if (!this.currentDirectory) {
  							/* no node to resolve the path in terms of */
  							return null;
  						}
  						root = this.currentDirectory;
  					}
  				}
  				var segments = path.substring(0, path.lastIndexOf(this.SEPARATOR)).split(this.SEPARATOR);
  				var result = root;
  				for (var i = 0; i < segments.length; i++) {
  					if (segments[i].length > 0) {
  						result = this.getChild(result, segments[i]);
  						if (!result || !result.Directory) {
  							/* non-existent directory */
  							return null;
  						}
  					}
  				}
  
  				/*
  				 * If the full path represents a directory then initiate the
  				 * retrieval of its full node info and children.
  				 */
  				var lastSegment = path.substring(path.lastIndexOf(this.SEPARATOR) + 1);
  				var child = this.getChild(result, lastSegment);
  				if (child) {
  					this._retrieveNode(child);
  				}
  
  				if (!result.Children) {
  					this._retrieveNode(result);
  				}
  				return result;
  			}
docs: Resolves path in terms of the specified root node (or the
  current directory if a root node is not provided) and returns
  the node of the resulting directory.