Ouvrir une fenêtre de sélection de dossier

Page 1 / 1

Il est toujours intéressant de permettre à un l'utilisateur de naviguer sur son disque dur lorsqu'il doit spécifier le chemin d'un dossier.
Pour cela, rien de plus simple, il suffit d'utiliser le composant "FolderBrowserDialog" fournis dans le ".Net Framework".

Pour ce tutoriel, vous aurez besoin :
1) d'un "TextBox" avec comme propriété :
- Name : TB_chemin_dossier
4) d'un "Button" avec comme propriété :
- Name : BT_parcourir
- Text : Parcourir
5) d'un "FolderBrowserDialog" avec comme propriété :
- Name : FolderBrowserDialog1 (nom par défaut)

Le composant "FolderBrowserDialog" vous permet de le personnaliser en modifiant la description a afficher dans la fenêtre, de modifier le dossier par défaut à afficher, ...

  1. Modifier la description à afficher dans la fenêtre
  2. Modifier le dossier par défaut
  3. Afficher ou non le bouton "Nouveau dossier"
  4. Modifier le dossier racine de la fenêtre d'exploration
  5. Récupérer le chemin du dossier sélectionné
  6. Télécharger la source

1. Modifier la description à afficher dans la fenêtre

Pour modifier le texte affiché en haut de la fenêtre de sélection de dossier, il vous suffit de modifier la propriété "Description".

VB.NET

FolderBrowserDialog1.Description = "Veuillez sélectionner le dossier où vous souhaitez enregistrer les fichiers."

2. Modifier le dossier par défaut

Pour modifier le dossier par défaut, vous devez modifier la propriété "SelectedPath".

VB.NET

' Sélectionne le dossier "Mes documents" par défaut
FolderBrowserDialog1.SelectedPath = My.Computer.FileSystem.SpecialDirectories.MyDocuments

' Vous pouvez aussi utiliser un chemin perso en l'indiquant comme ceci :
FolderBrowserDialog1.SelectedPath = "C:\Users\InformatiWeb\Documents"

3. Afficher ou non le bouton "Nouveau dossier"

Vous pouvez afficher ou non le bouton "Nouveau dossier" en bas de la fenêtre en modifiant la propriété "ShowNewFolderButton".

VB.NET

' Affiche le bouton "Nouveau dossier"
FolderBrowserDialog1.ShowNewFolderButton = True
' Masque le bouton "Nouveau dossier"
FolderBrowserDialog1.ShowNewFolderButton = False

4. Le dossier racine de la fenêtre d'exploration

Cette fonctionnalité peut être confondue avec celle permettant de modifier le dossier par défaut. En réalité, cette fonctionnalité permet de n'afficher à l'utilisateur que les sous-dossiers, les sous-sous dossiers, ... d'un dossier. En résumé, si vous définissez le dossier "Mes documents" comme dossier racine, l'utilisateur n'aura la possibilité que de sélectionner un dossier ou un sous dossier se trouvant dans son dossier "Mes documents". Par exemple, le dossier "d:\mes sites web" ne sera pas accessible dans le cas que nous avons mentionné plus tôt.

Vous ne pouvez pas spécifier un chemin d'accès comme vous le feriez habituellement. Comme votre IDE (Visual Basic Express / Visual Studio) vous l'indiquera, la valeur est sera une constante présente dans l'énumération "Environment.SpecialFolder".
L'exemple ci-dessous vous montrera comment défini le dossier "Mes documents" comme dossier racine :

VB.NET

FolderBrowserDialog1.RootFolder = Environment.SpecialFolder.Personal

Pour réinitialiser cette propriété, vous devez la définir sur "Desktop" qui est la valeur par défaut.

VB.NET

FolderBrowserDialog1.RootFolder = Environment.SpecialFolder.Desktop

5. Récupérer le chemin du dossier sélectionné

Pour récupérer le chemin du dossier sélectionné, il suffit de récupérer la valeur de la propriété "SelectedPath".
Cette propriété sert effectivement 2 choses :
- Définir le dossier par défaut de la fenêtre d'exploration de dossiers ou
- Récupérer le chemin du dossier sélectionné par l'utilisateur.

VB.NET

' On affiche le formulaire et on teste si l'utilisateur a bien sélectionné un dossier.
' L'utilisateur aura donc cliqué sur le bouton OK.
If FolderBrowserDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
  ' Récupère le chemin complet du dossier sélectionné par l'utilisateur
  Dim dossier_selectionner As String = FolderBrowserDialog1.SelectedPath

  ' Affiche le chemin complet du dossier sélectionné par l'utilisateur dans la case (TextBox)
  TB_chemin_dossier.Text = dossier_selectionner

  ' Affiche le nom du dossier (seulement) sélectionné, à l'utilisateur
  ' Petite subtilité, il faut utiliser la fonction "IO.Path.GetFileName" sur le chemin d'un dossier
  ' pour en récupérer le nom du dossier ciblé.
  ' Alors que "IO.Path.GetDirectoryName" vous aurait affiché le chemin du dossier CONTENANT le dossier
  ' ciblé par le chemin indiqué en paramètre
  MsgBox("Vous avez sélectionné le dossier : " & IO.Path.GetFileName(dossier_selectionner))

Else
  ' Si l'utilisateur n'a pas sélectionné de dossier, on lui affiche un avertissement
  MsgBox("Aucun dossier n'a été sélectionné", MsgBoxStyle.Exclamation, "Aucun dossier sélectionné")
End If

6. Télécharger la source

Télécharger la source