Establecer la ubicación de inicio del diálogo del navegador de carpetas

¿Hay alguna manera de establecer el directorio inicial de un cuadro de diálogo del navegador de carpetas en una carpeta no especial? Esto es lo que estoy usando actualmente

fdbLocation.RootFolder = Environment.SpecialFolder.Desktop; 

pero quiero usar una ruta que he almacenado en una cadena como esta

 fdbLocation.RootFolder = myFolder; 

Esto provoca un error “No se puede convertir ‘cadena’ a ‘System.Environment.SpecialFolder'”.

Simplemente configure la propiedad SelectedPath antes de llamar a ShowDialog.

 fdbLocation.SelectedPath = myFolder; 

Establezca la propiedad SelectedPath antes de llamar a ShowDialog …

 folderBrowserDialog1.SelectedPath = @"c:\temp\"; folderBrowserDialog1.ShowDialog(); 

Los comenzará en C: \ Temp

 fldrDialog.SelectedPath = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) 

“Si la propiedad SelectedPath está establecida antes de mostrar el cuadro de diálogo, la carpeta con esta ruta será la carpeta seleccionada, siempre que SelectedPath esté establecida en una ruta absoluta que sea una subcarpeta de RootFolder (o más precisamente, apunte a una subcarpeta de el espacio de nombres de shell representado por RootFolder) “.

MSDN – SelectedPath

“El método GetFolderPath devuelve las ubicaciones asociadas con esta enumeración. Las ubicaciones de estas carpetas pueden tener diferentes valores en diferentes sistemas operativos, el usuario puede cambiar algunas de las ubicaciones y las ubicaciones están localizadas”.

Re: Desktop vs DesktopDirectory

Escritorio

“El escritorio lógico en lugar de la ubicación del sistema de archivos físicos”.

Directorio de escritorio:

“El directorio utilizado para almacenar físicamente los objetos de archivo en el escritorio. No confunda este directorio con la carpeta del escritorio, que es una carpeta virtual”.

MSDN – Enumeración de carpetas especiales

MSDN – GetFolderPath

Para establecer la ruta del directorio seleccionado y recuperar el nuevo directorio:

 dlgBrowseForLogDirectory.SelectedPath = m_LogDirectory; if (dlgBrowseForLogDirectory.ShowDialog() == DialogResult.OK) { txtLogDirectory.Text = dlgBrowseForLogDirectory.SelectedPath; }