Définir l’emplacement de démarrage de la boîte de dialog du navigateur de dossiers

Est-il possible de définir le répertoire initial d’une boîte de dialog de navigateur de dossiers sur un dossier non spécial? C’est ce que j’utilise actuellement

fdbLocation.RootFolder = Environment.SpecialFolder.Desktop; 

mais je veux utiliser un chemin que j’ai stocké dans une chaîne quelque chose comme ça

 fdbLocation.RootFolder = myFolder; 

Cela provoque une erreur “Impossible de convertir ‘chaîne’ en ‘System.Environment.SpecialFolder'”.

Il suffit de définir la propriété SelectedPath avant d’appeler ShowDialog.

 fdbLocation.SelectedPath = myFolder; 

Définissez la propriété SelectedPath avant d’appeler ShowDialog …

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

Les démarrera à C: \ Temp

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

“Si la propriété SelectedPath est définie avant d’afficher la boîte de dialog, le dossier avec ce chemin sera le dossier sélectionné, tant que SelectedPath est défini sur un chemin absolu qui est un sous-dossier de RootFolder (ou plus précisément, pointe vers un sous-dossier de l’espace de noms du shell représenté par RootFolder). ”

MSDN – SelectedPath

“La méthode GetFolderPath renvoie les emplacements associés à cette énumération. Les emplacements de ces dossiers peuvent avoir des valeurs différentes selon les systèmes d’exploitation, l’utilisateur peut modifier certains emplacements et les emplacements sont localisés.”

Re: Desktop vs DesktopDirectory

Bureau

“Le bureau logique plutôt que l’emplacement du système de fichiers physique.”

DesktopDirectory:

“Le répertoire utilisé pour stocker physiquement les objects de fichiers sur le bureau. Ne confondez pas ce répertoire avec le dossier de bureau lui-même, qui est un dossier virtuel.”

MSDN – Enum pour les dossiers spéciaux

MSDN – GetFolderPath

Pour définir le chemin du répertoire sélectionné et récupérer le nouveau répertoire:

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