/// <summary> /// Internal method for browsing the control along a given path. /// </summary> /// <param name="request"></param> /// <param name="ResetBrowserStatus"></param> /// <returns>Whether path exists and was successfully browsed or not.</returns> private FinalBrowseResult InternalBrowsePath(BrowseRequest request, bool ResetBrowserStatus) { IPathModel pmodel = request.NewLocation; CancellationToken ct = request.CancelTok; if (ResetBrowserStatus == true) { ClearBrowserStates(); } if (pmodel.DirectoryPathExists() == false) { DisplayMessage.IsErrorMessageAvailable = true; DisplayMessage.Message = string.Format(FileSystemModels.Local.Strings.STR_ERROR_FOLDER_DOES_NOT_EXIST, pmodel.Path); return(FinalBrowseResult.FromRequest(request, BrowseResult.InComplete)); } if (_Root.Count == 0) // Make sure drives are available { SetInitialDrives(ct); } if (ct != null) { ct.ThrowIfCancellationRequested(); } var pathItem = SelectDirectory(pmodel, ct); if (pathItem != null) { if (pathItem.Length > 0) { SelectedItem = pathItem[pathItem.Length - 1]; } return(FinalBrowseResult.FromRequest(request, BrowseResult.Complete)); } return(FinalBrowseResult.FromRequest(request, BrowseResult.InComplete)); }