Boîte de dialogue Ouvrir le dossier en C#

Syed Hassan Sabeeh Kazmi 12 octobre 2023
  1. Utiliser la classe FolderBrowserDialog en C# pour ouvrir une boîte de dialogue de dossier
  2. Utiliser la classe OpenFileDialog en C# pour ouvrir une boîte de dialogue de dossier
Boîte de dialogue Ouvrir le dossier en C#

Dans les applications C#, l’interaction avec les utilisateurs lors de la sélection des fichiers est un sujet fondamental et obligatoire. Dans ce didacticiel, vous apprendrez les deux manières différentes d’ouvrir une boîte de dialogue de dossier en C#.

Il est important de gérer le navigateur de dossiers et les boîtes de dialogue d’ouverture de fichiers pour sélectionner des fichiers et des dossiers lors du développement de projets C# dans Winforms.

Les boîtes de dialogue de dossier font partie de l’API Windows et sont accessibles aux développeurs C# sur la plate-forme Windows. La première consiste à utiliser la classe OpenFileDialog pour afficher une boîte de dialogue de dossier permettant d’ouvrir un ou plusieurs fichiers.

L’autre méthode consiste à utiliser le contrôle FolderBrowserDialog pour afficher une boîte de dialogue de dossier permettant de sélectionner des dossiers dans le même répertoire.

Utiliser la classe FolderBrowserDialog en C# pour ouvrir une boîte de dialogue de dossier

Cette classe sert à ouvrir un dossier de dialogue pour parcourir et sélectionner un dossier sur un ordinateur. Il possède des fonctionnalités de type Windows Explorer pour naviguer dans les dossiers et sélectionner un dossier.

La classe FolderBrowserDialog n’a pas ou n’a pas besoin de propriétés visuelles comme les autres. Il fait partie du framework .Net et fournit un composant de navigateur de dossiers pour vos applications C#.

Le programme C# suivant dans Visual Studio ouvre une boîte de dialogue de dossier et affiche quelque chose lorsque l’utilisateur sélectionne un dossier et appuie sur OK. Créez un Form1.cs [Design] dans Visual Studio et un bouton button1 avant d’exécuter le code C#.

using System;
using System.Data;
using System.Linq;
using System.Drawing;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
using System.IO;
using System.Windows.Forms;

namespace openFolderDialog {
  public partial class Form1 : Form {
    public Form1() {
      InitializeComponent();
    }

    // `button1` button click event to open folder dialog
    private void button1_Click(object sender, EventArgs e) {
      FolderBrowserDialog fbd = new FolderBrowserDialog();
      if (fbd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        // shows the path to the selected folder in the folder dialog
        MessageBox.Show(fbd.SelectedPath);
    }
  }
}

Bien que FolderBrowserDialog soit un moyen pratique d’ouvrir une boîte de dialogue de dossier en C#, il souffre de nombreuses limitations, certaines empêchant le composant d’être utile dans les applications.

Il dispose de puissantes fonctionnalités de contrôle du comportement et de personnalisation bien en avance sur l’Explorateur Windows.

Utiliser la classe OpenFileDialog en C# pour ouvrir une boîte de dialogue de dossier

En C#, le contrôle OpenFileDialog est le plus simple pour lancer Windows Open File Dialog et leur permettre de sélectionner des fichiers dans le même répertoire. L’objectif principal d’Open File Dialog est de sélectionner un ou plusieurs fichiers pour différents processus, tels que le téléchargement et le téléchargement de fichiers en C#.

using System;
using System.Data;
using System.Linq;
using System.Drawing;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
using System.IO;
using System.Windows.Forms;

namespace OpenFileDialogBox_CS {

  // create `Form1.cs [Design]`in Visual Studio

  public partial class Form1 : Form {
    public Form1() {
      InitializeComponent();
    }

    // create  a `btnSelect` button in Form1.cs [Design] and use its name in C# code

    private void btnSelect_Click(object sender, EventArgs e) {
      openFileDialog1.Multiselect = false;
      if (openFileDialog1.ShowDialog() == DialogResult.OK) {
        string fileName = Path.GetFileName(openFileDialog1.FileName);
        string filePath = openFileDialog1.FileName;
        MessageBox.Show(fileName + " - " + filePath);
      }
    }

    // create a `btnSelectMultiple` button in Form1.cs [Design] and use its name in C# code

    private void btnSelectMultiple_Click(object sender, EventArgs e) {
      string message = "";
      openFileDialog1.Multiselect = true;
      if (openFileDialog1.ShowDialog() == DialogResult.OK) {
        foreach (string file in openFileDialog1.FileNames) {
          message += Path.GetFileName(file) + " - " + file + Environment.NewLine;
        }
        MessageBox.Show(message);
      }
    }
  }
}

Avec OpenFileDialog, il est possible de n’afficher que les fichiers avec des extensions spécifiques en utilisant sa propriété Filter.

openFileDialog1.Filter = "Image Files|*.GIF;*.BMP;*.JPEG;*.PNG;*.JPG|All files (*.*)|*.*";

Utilisez le code C# suivant pour que la classe OpenFileDialog démarre une boîte de dialogue de dossier dans un dossier spécifique.

openFileDialog1.InitialDirectory = "c:\\temp";

Les deux méthodes pour ouvrir la boîte de dialogue de dossier en C# sont simples et prennent en charge une vaste bibliothèque de fonctionnalités et d’autres éléments pour personnaliser la boîte de dialogue d’ouverture de dossier en fonction de vos besoins. De plus, les deux méthodes vous permettent de personnaliser entièrement les éléments de la boîte de dialogue d’ouverture du dossier et leurs propriétés.

Syed Hassan Sabeeh Kazmi avatar Syed Hassan Sabeeh Kazmi avatar

Hassan is a Software Engineer with a well-developed set of programming skills. He uses his knowledge and writing capabilities to produce interesting-to-read technical articles.

GitHub