C#: Explorador de carpetas

Iniciado por Layyer, 3 Octubre 2007, 10:12 AM

0 Miembros y 1 Visitante están viendo este tema.

Layyer

Hola,
He estado mirando por google pero no consigo obtener la respuesta concreta asi que recurro a vosotros.
Sabeis de alguna libreria/clase para C# que pemita visualizar la estructura de carpetas de una unidad? es decir, que ofrezca un navegador de carpetas tipo explorador de windows(con interfaz grafica)? Yo como entorno de desarrollo uso Visual Studio .NET y por lo que me han comentado, "de serie" no trae este elemento.

Gracias por adelantado.

SALUDOS

~~

Puedes C# cuenta con funciones para eso, como GetCurrentDirectory, GetDirectories o GetFiles, prueva a meter los datos devueltos en un list box.

P[i]

 Creo que no hay nada porque es muy facil y cada uno lo hace como quiere. Lo normal es usar ListView (Puedes meter botones para ir adelante, atras,arriba un text para ver la ruta y esas cosas)+ System.IO (No hace falta ni mirar la doc para saber como van estas funciones) + Iconos (El icono que va a tener cada item, uno para carpetas y otro para archivos y ya tienes algo bueno). Despues solo tienes que hacer un poco de programacion con eventos y ya lo tienes.
Saludos.

~~

Si, basicamente es eso. Mira un ejemplo muy simple q acabo de hacer con dos list box, un boton y un text box para poner la ruta, los nombres los sacas del code ;)

Código (csharp) [Seleccionar]
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;

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

        // El form load
        private void Form1_Load(object sender, EventArgs e)
        {
            // Iniciamos el txtRuta
            txtRuta.Text = Directory.GetDirectoryRoot(Directory.GetCurrentDirectory());

            // Listamos las carpetas
            carpetas(txtRuta.Text);

            // Listamos los archivos
            archivos(txtRuta.Text);
        }

        // El botón para explorar rutas
        private void button1_Click(object sender, EventArgs e)
        {
            // Listamos las carpetas
            carpetas(txtRuta.Text);

            // Listamos los archivos
            archivos(txtRuta.Text);
        }

        // Al hacer doble click sobre una ruta la colocamos en txtRuta
        private void lbcar_DoubleClick(object sender, EventArgs e)
        {
            txtRuta.Text = lbcar.SelectedItem.ToString();

            // Listamos las carpetas
            carpetas(txtRuta.Text);

            // Listamos los archivos
            archivos(txtRuta.Text);
        }

        // Metodo que coloca las carpetas de la ruta indicada en el list
        // box correspondiente
        private void carpetas(string ruta)
        {
            lbcar.Items.Clear();

            string[] carpeta = Directory.GetDirectories(ruta);

            foreach(string car in carpeta)
                lbcar.Items.Add (car);
        }

        // Metodo que coloca los archivos de la ruta indicada en el list
        // box correspondiente
        private void archivos(string ruta)
        {
            lbar.Items.Clear();

            string[] archivo = Directory.GetFiles(ruta);

            foreach (string ar in archivo)
                lbar.Items.Add(ar);
        }
    }
}

Layyer

Ok, pues muchas gracias a todos. yo pnsando en a ver si habia librerias y resulta que es mas facil  rapido implementarlo uno mismo que andar buscando.

Pues lo dicho, gracias!!

SALUDOS