internal PathNode Resolve(Context context, string path)
        {
            if( _disposed)
            {
                throw new ObjectDisposedException( "MongoDrive" );
            }

            Regex re = new Regex(@"^[-_a-z0-9:]+:/?");
            path = path.Replace('\\', '/');
            path = re.Replace(path, "");

            PathNode factory = new RootNode(context);

            var nodeMonikers = path.Split(new char[] {'/'}, StringSplitOptions.RemoveEmptyEntries);

            foreach (var nodeMoniker in nodeMonikers)
            {
                factory = factory.Resolve(nodeMoniker);
                if (null == factory)
                {
                    break;
                }
            }

            return factory;
        }