Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Danilo Garcia

File system com treeview control

Recommended Posts

Bom dia pessoal!

 

Estou com o seguinte problema...tenho uma pasta que contem subpastas com arquivos dentro....estou modificando um codigo que foi feito para popular o treeview dinamicamente dando o caminho da pasta. Isso ele faz normal mas quando eu vou clicar nos arquivos dentro das subpastas ele nao me da a opçao de abrir ou salvar. Sao arquivos txt, pdf, doc... ele nao faz nada na verdade...abaixo esta o codigo que estou usando.

using System;
using System.IO;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;

public partial class biblioteca_biblioteca2 : System.Web.UI.Page
{

	protected void Page_Load(object sender, System.EventArgs e)
	{
		TreeView1.Nodes[0].Value = Server.MapPath("../arquivos/biblioteca/");
	}
	protected void TreeView1_TreeNodePopulate(object sender, TreeNodeEventArgs e)
	{
		if ((IsCallback == true))
		{
			if ((e.Node.ChildNodes.Count == 0))
			{
				LoadChildNode(e.Node);
			}
		}
	}
	private void LoadChildNode(TreeNode node)
	{
		DirectoryInfo directory = null;
		directory = new DirectoryInfo(node.Value);
		foreach (DirectoryInfo subtree in directory.GetDirectories())
		{
			TreeNode subNode = new TreeNode(subtree.Name);
			subNode.Value = subtree.FullName;
			try
			{
				if (((subtree.GetDirectories().Length > 0)
							|| (subtree.GetFiles().Length > 0)))
				{
					subNode.PopulateOnDemand = true;
					subNode.SelectAction = TreeNodeSelectAction.Expand;
					subNode.NavigateUrl = "#";
							
				}
			}
			catch (Exception ex)
			{
				lblResult.Text = "Erro:" + ex.Message;
			}
			node.ChildNodes.Add(subNode);
		}
		foreach (FileInfo fi in directory.GetFiles())
		{
			TreeNode subNode = new TreeNode(fi.FullName);
			node.ChildNodes.Add(subNode);
			subNode.NavigateUrl = fi.Name.ToString();
			//subNode.NavigateUrl = Server.MapPath("" + fi.DirectoryName  + fi.Name.ToString());
		}
	 }
}

 

se alguem puder me ajudar desde ja obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O componente TreeView não tem essa função, ele simplemesmente mostra os dados conforme a programação que você fez nele. Se você quer abrir o arquivo conforme o click, você vai ter que criar um evento Click na TreeView e abrir o arquivo via programação também.

Compartilhar este post


Link para o post
Compartilhar em outros sites

no server map path tem o caminho da pasta biblioteca...se eu colocar qualquer arquivo na pasta biblioteca e clicar nele ele pede pra abrir ou salvar mas se eu clicar por exemplo na pasta Albert einstein q ta dentro da pasta biblioteca ai ja nao abre....se fosse problema com o treeview ele nao abriria certo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, eu estou sem o VS aqui para testar, mas acho que você está adicionando todos os diretórios do raiz mas está esquecendo de adicionar os subdiretórios e arquivos desses diretórios. Acho que uma função recursiva resolve.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.