Listar Archivos y Carpetas de una Ruta/Carpeta en C# .NET

Aprende a listar archivos y carpetas en C# .NET con Directory.GetFiles y GetDirectories. Incluye visualización en un DataGridView.

Listar archivos y carpetas de un directorio es una tarea muy común en aplicaciones de escritorio con C# — desde exploradores de archivos hasta sistemas de respaldo, auditoría o gestión documental. En este artículo te explico cómo hacerlo de varias formas usando System.IO en C# .NET y Visual Studio.

Requisitos

  • Visual Studio 2019 o superior
  • Proyecto Windows Forms en C# .NET
  • Conocimientos básicos de C#

Importar la librería System.IO

Para trabajar con archivos y carpetas necesitas activar el namespace de entrada y salida al inicio de tu archivo:

using System.IO;

Opcionalmente le he agregado un DataGridView a mi ventana y le he agregado las siguiente configuración.

dataGridView1.Columns.Clear();
dataGridView1.Rows.Clear();
dataGridView1.Columns.Add("Archivo", "Archivo");
dataGridView1.Columns[0].Width = 500;

Método 1 — Listar archivos de una carpeta

La función Directory.GetFiles() devuelve un array de strings con las rutas completas de todos los archivos en una carpeta.

// Obtener todos los archivos de una carpeta
string[] archivos = Directory.GetFiles(@"C:\MiCarpeta");

foreach (string archivo in archivos)
{
    Console.WriteLine(archivo);
}

Método 2 — Listar carpetas y subcarpetas

La función Directory.GetDirectories() devuelve un array con todas las subcarpetas dentro de una ruta.

// Obtener todas las subcarpetas
string[] carpetas = Directory.GetDirectories(@"C:\MiCarpeta");

foreach (string carpeta in carpetas)
{
    Console.WriteLine("> " + carpeta);
}

Método 3 — Listar archivos y carpetas juntos

Combina ambas funciones para mostrar archivos y carpetas en un solo listado, diferenciando las carpetas con el símbolo >:

private void ListarContenido(string ruta)
{
    // Listar carpetas primero
    string[] carpetas = Directory.GetDirectories(ruta);
    foreach (string carpeta in carpetas)
    {
        Console.WriteLine("> " + carpeta);
    }

    // Luego los archivos
    string[] archivos = Directory.GetFiles(ruta);
    foreach (string archivo in archivos)
    {
        Console.WriteLine(archivo);
    }
}

Llama a la función así:

ListarContenido(@"C:\MiCarpeta");

Método 4 — Mostrar archivos en un DataGridView

Esta es la forma más visual para mostrar el contenido de una carpeta en una aplicación Windows Forms:

private void CargarArchivos(string ruta)
{
    // Limpiar el DataGridView
    dataGridView1.Columns.Clear();
    dataGridView1.Rows.Clear();

    // Configurar columnas
    dataGridView1.Columns.Add("tipo", "Tipo");
    dataGridView1.Columns.Add("nombre", "Nombre");
    dataGridView1.Columns.Add("ruta", "Ruta completa");
    dataGridView1.Columns[2].Width = 400;

    // Agregar carpetas
    string[] carpetas = Directory.GetDirectories(ruta);
    foreach (string carpeta in carpetas)
    {
        dataGridView1.Rows.Add(">", Path.GetFileName(carpeta), carpeta);
    }

    // Agregar archivos
    string[] archivos = Directory.GetFiles(ruta);
    foreach (string archivo in archivos)
    {
        dataGridView1.Rows.Add("", Path.GetFileName(archivo), archivo);
    }
}

Resultado

En mi caso que use el datagridview para visualizar los archivos se veria asi:

Conclusión

Con Directory.GetFiles() y Directory.GetDirectories() puedes listar archivos y carpetas en C# de forma simple y flexible. Desde listados básicos hasta búsquedas recursivas con filtros por extensión e información detallada de cada archivo.

¿Tienes dudas o quieres ver algún caso específico? Deja un comentario.


Artículos relacionados

CRUD con C# y MySQL →

Cómo llenar un DataGridView en C# y Visual Studio →

Leer y escribir archivos con C# .NET →

Leave a Reply

Your email address will not be published. Required fields are marked *

Discover more from Evilnapsis

Subscribe now to keep reading and get access to the full archive.

Continue reading