none
saber si es archivo o directorio RRS feed

  • Pregunta

  • Buenas tardes a todos. tengo la siguiente duda, he desarrollado algo como esto en mi aplicacion web (lista los archivos que el usuario tiene guardados en el servidor)

    la cual me lista los archivos y directorios en un TreeView...bueno, ahora la duda que me ha surgido y que no he podido resolver es...como saber si el usuario ha seleccionado un archivo o un directorio?..como puedo identificar de un archivo o directorio? 

    espero que me puedan ayudar ya que esto me ha sido muy complicado, desde crear el arbol hasta esto que me ha pasado ahora. Ayuda por favor!!...

    Muchisimas gracias a todos..saludos 

    miércoles, 1 de abril de 2015 22:52

Respuestas

  • Hola,

    Propiamente el treeview no tiene algo que te ayude a resolver este problema o a identificar si es un archivo o folder. Esto es a que el treeview esta en función de nodos. Ahora, no obstante cada nodo tiene una propiedad "Tag" en esta propiedad puedes almacenar algún dato que te ayude a diferenciar si es archivo o directorio.

    Cuando "llenas" tu treeview en ese momento tienes la capacidad de agregar la propiedad:

    DirectoryInfo info = new DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments));
                var directories = info.GetDirectories();
                var files = info.GetFiles();
                var root = treeView1.Nodes[0]; //
                foreach (var dir in directories)
                {
                    root.Nodes.Add(new TreeNode
                    {
                        Text = dir.Name,
                        Tag = "dir",
                    });
                }
    
                foreach (var file in files)
                {
                    root.Nodes.Add(new TreeNode
                    {
                        Text = file.Name,
                        Tag = "file",
                    });
                }

    Saludos,
    • Marcado como respuesta Enrique Aleman lunes, 6 de abril de 2015 1:20
    jueves, 2 de abril de 2015 16:09
  • >>no me reconoce el ".Nodes", tampoco "Tag"...... en vez de "root.Nodes".

    es que esas propiedades son del treeview de winforms, no de asp.net

    por eso te comente que debes usar el Value del nodo, la tecnica es la misma pero debes usar otras propiedades que si tengas en el treeview de asp.net

    ASP.Net Treeview control and tag property for each node

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    viernes, 3 de abril de 2015 3:15

Todas las respuestas

  • >>como saber si el usuario ha seleccionado un archivo o un directorio?

    pero en el treeview listas archivos ? se supone que el arbol solo listas las carpetas, al seleccionar una en algun listview (ubicado la la derecha del treeview) deberias mostrar los archivos que contiene

    ---

    tambien podrias asignar en el Value

    del nodo cuando lo crear alguna info adicional para poder determinar que tipo de nodo se trata si carpeta o archivo, entonces cuando lo trabajas accedes al value para tomar esta informacion

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    miércoles, 1 de abril de 2015 23:36
  • Leandro. gracias por responder...en mi treeView, listo tanto los directorios como los archivos que el usuario tiene almacenados en el servidor, es por eso que no se como diferenciar si es un archivo o carpeta...saludos y gracias

    miércoles, 1 de abril de 2015 23:45
  • Hola,

    Propiamente el treeview no tiene algo que te ayude a resolver este problema o a identificar si es un archivo o folder. Esto es a que el treeview esta en función de nodos. Ahora, no obstante cada nodo tiene una propiedad "Tag" en esta propiedad puedes almacenar algún dato que te ayude a diferenciar si es archivo o directorio.

    Cuando "llenas" tu treeview en ese momento tienes la capacidad de agregar la propiedad:

    DirectoryInfo info = new DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments));
                var directories = info.GetDirectories();
                var files = info.GetFiles();
                var root = treeView1.Nodes[0]; //
                foreach (var dir in directories)
                {
                    root.Nodes.Add(new TreeNode
                    {
                        Text = dir.Name,
                        Tag = "dir",
                    });
                }
    
                foreach (var file in files)
                {
                    root.Nodes.Add(new TreeNode
                    {
                        Text = file.Name,
                        Tag = "file",
                    });
                }

    Saludos,
    • Marcado como respuesta Enrique Aleman lunes, 6 de abril de 2015 1:20
    jueves, 2 de abril de 2015 16:09
  • Amigo mio, primero gracias por tu tiempo y respuesta. mira en la parte de codigo...

    root.Nodes.Add(new TreeNode
                    {
                        Text = dir.Name,
                        Tag = "dir",
                    });

    no me reconoce el ".Nodes", tampoco "Tag"...... en vez de "root.Nodes"...podria ser "root.ChildNodes.Add"???

    no se porque no me reconoce eso. espero me puedas ayudar. saludos y gracias


    jueves, 2 de abril de 2015 19:31
  • >>no me reconoce el ".Nodes", tampoco "Tag"...... en vez de "root.Nodes".

    es que esas propiedades son del treeview de winforms, no de asp.net

    por eso te comente que debes usar el Value del nodo, la tecnica es la misma pero debes usar otras propiedades que si tengas en el treeview de asp.net

    ASP.Net Treeview control and tag property for each node

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    viernes, 3 de abril de 2015 3:15
  • Hola:

    Saber infomración de los archivos y directorios.

    https://msdn.microsoft.com/es-es/library/6yk7a1b0.aspx?f=255&MSPPError=-2147217396

    Saludos.


    http://electronica-pic.blogspot.com

    viernes, 3 de abril de 2015 14:23