protected override IVirtualDirectory AddDirectoryToBackingDirectoryOrDefault(string name)
        {
            var virtualPath = Provider.CombineVirtualPath(this.VirtualPath, name);
            var dir         = GetDirectory(virtualPath);

            if (dir != null)
            {
                return(dir);
            }

            Provider.CreateDirectoryInternal(virtualPath);

            // TODO: add local collection and make Contents merge both
            this._contents = null;

            return(new SftpVirtualDirectory(Provider, this, name));
        }