Diálogo Abrir Carpeta en C#

Syed Hassan Sabeeh Kazmi 12 octubre 2023
  1. Utilice la clase FolderBrowserDialog en C# para abrir un cuadro de diálogo de carpeta
  2. Utilice la clase OpenFileDialog en C# para abrir un cuadro de diálogo de carpeta
Diálogo Abrir Carpeta en C#

En las aplicaciones C#, la interacción con los usuarios en la selección de archivos es un tema fundamental y obligatorio. En este tutorial, aprenderá las dos formas diferentes de abrir un cuadro de diálogo de carpeta en C#.

Es importante utilizar el Explorador de carpetas y los Diálogos de apertura de archivos para seleccionar archivos y carpetas al desarrollar proyectos de C# en Winforms.

Los cuadros de diálogo de la carpeta son parte de la API de Windows y son accesibles para los desarrolladores de C# en la plataforma de Windows. La primera forma es usar la clase OpenFileDialog para mostrar un diálogo de carpeta para abrir uno o varios archivos.

El otro método es usar el control FolderBrowserDialog para mostrar un cuadro de diálogo de carpeta para seleccionar carpetas del mismo directorio.

Utilice la clase FolderBrowserDialog en C# para abrir un cuadro de diálogo de carpeta

Esta clase sirve para abrir una carpeta de diálogo para navegar y seleccionar una carpeta en una computadora. Tiene características similares a Windows Explorer para navegar a través de carpetas y seleccionar una carpeta.

La clase FolderBrowserDialog no tiene ni necesita propiedades visuales como otras. Es parte del marco .Net y proporciona un componente de navegador de carpetas para sus aplicaciones C#.

El siguiente programa C# en Visual Studio abrirá un cuadro de diálogo de carpeta y generará algo cuando el usuario seleccione una carpeta y presione OK. Cree un Form1.cs [Diseño] en Visual Studio y un botón button1 antes de ejecutar el código 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);
    }
  }
}

Si bien FolderBrowserDialog es una forma práctica de abrir un cuadro de diálogo de carpeta en C#, tiene muchas limitaciones, algunas de las cuales impiden que el componente sea de uso práctico en las aplicaciones.

Cuenta con una poderosa funcionalidad de control de comportamiento y personalización millas por delante del Explorador de Windows.

Utilice la clase OpenFileDialog en C# para abrir un cuadro de diálogo de carpeta

En C#, el control OpenFileDialog es el más fácil para iniciar el cuadro de diálogo Abrir archivo de Windows y permitirles seleccionar archivos en el mismo directorio. El propósito principal del cuadro de diálogo Abrir archivo es seleccionar uno o varios archivos para diferentes procesos, como cargar y descargar archivos 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);
      }
    }
  }
}

Con OpenFileDialog, es posible mostrar solo archivos con extensiones específicas utilizando su propiedad Filter.

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

Utilice el siguiente código C# para hacer que la clase OpenFileDialog inicie un cuadro de diálogo de carpeta en una carpeta específica.

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

Ambos métodos para abrir el cuadro de diálogo de carpeta en C# son simples y admiten una amplia biblioteca de funciones y otros elementos para personalizar el cuadro de diálogo de carpeta abierta según sus necesidades. Además, ambos métodos le permiten personalizar completamente los elementos del cuadro de diálogo Abrir carpeta y sus propiedades.

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