TreeViewNode... come lo linko alla struttura di una cartella?

mercoledì 15 luglio 2009 - 14.19

Revan1985 Profilo | Junior Member

Mi serve sapere come poter linkare una cartella e le sue sottocartelle + i files di una specifica estensione...
come posso fare?

esiste un modo semplice, indolore e incodice? <gioco di parole stupido, lo so ^^' >

thx

Non c'è emozione; c'è pace.
Non c'è ignoranza; c'è conoscenza.
Non c'è inquietudine; c'è serenità.
Non c'è caos; c'è armonia.
Non c'è morte; c'è la Forza.

Jeremy Profilo | Guru

Ciao Davide.
>esiste un modo semplice, indolore e incodice?
Dipende da cosa intendi per semplice, indolore e sopratutto incodice!!

Ad ogni modo .... puoi lavorare con la classe IO.Directory per recuperare l'elenco dei files presenti nella cartella e poi ..............

Facci sapere....
Ciao

Revan1985 Profilo | Junior Member

Intendo il poter caricare codice a naso, io dico qual'è la root da caricare, e lui carica tutta la sottostruttura...

Non c'è emozione; c'è pace.
Non c'è ignoranza; c'è conoscenza.
Non c'è inquietudine; c'è serenità.
Non c'è caos; c'è armonia.
Non c'è morte; c'è la Forza.

Jeremy Profilo | Guru

Ciao Davide.
Io di solito uso la tastiera ..... ma tu usa per il naso se vuoi.
Ad ogni modo .... prova a dare un occhio (o vedi tu cosa) alla classe che ti ho indicato .... ed eventualmente, se hai problemi .... facci sapere....
Ciao

Revan1985 Profilo | Junior Member

so come prendere le cartelle, sotto cartrelle et altro...
ma, per quello che voglio fare, devo per forza fare un caricamento dinamico?

Non c'è emozione; c'è pace.
Non c'è ignoranza; c'è conoscenza.
Non c'è inquietudine; c'è serenità.
Non c'è caos; c'è armonia.
Non c'è morte; c'è la Forza.

Revan1985 Profilo | Junior Member

risolto...

using System; using System.IO; using System.Windows.Forms; using System.ComponentModel; using System.Collections.Generic; namespace ImpronteCS { class FileSystemTreeView : TreeView { /// <summary>Lista dei files caricati</summary> public List<string> FileList; /// <summary>Aggiungere le sottodirectory?</summary> public bool SubFolders = false; /// <summary>Il formato dei files da caricare</summary> public string Format = string.Empty; /// <summary>Conteggio dei file [si può omettere]</summary> public int FileCount = 0; /// <summary>Costruttore</summary> public FileSystemTreeView() { this.BeforeExpand += new TreeViewCancelEventHandler(FS_BeforeExpand); this.AfterCollapse += new TreeViewEventHandler(FS_AfterCollapse); } private void FS_AfterCollapse(object sender, TreeViewEventArgs e) { //Pulisci i nodi. e.Node.Nodes.Clear(); e.Node.Nodes.Add("."); } private void FS_BeforeExpand(object sender, TreeViewCancelEventArgs e) { try { e.Node.Nodes.Clear(); string needle = e.Node.Tag as string; string[] folders = Directory.GetDirectories(needle); string[] files = Directory.GetFiles(needle); //Carico le sottodirectory? if (SubFolders) { foreach (string folder in folders) { try { string[] s_folders = Directory.GetDirectories(folder); string[] s_files = Directory.GetFiles(folder); TreeNode t_folder = getNode(folder); foreach (string s_folder in s_folders) t_folder.Nodes.Add(getNode(s_folder)); foreach (string s_file in s_files) { //E' il formato che voglio? if (s_file.EndsWith(Format)) { //Allora aggiungilo. FileList.Add(s_file); t_folder.Nodes.Add(getNode(s_file)); } } e.Node.Nodes.Add(t_folder); } catch (IOException ioe) { //Fai niente } catch (UnauthorizedAccessException uae) { //Fai niente } finally { //Fai niente } } } foreach (string file in files) { //E' il formato che voglio? if (file.EndsWith(Format)) { //Allora aggiungilo. FileList.Add(file); e.Node.Nodes.Add(getNode(file)); } } } catch (IOException ioe) { //Fai niente } catch (UnauthorizedAccessException uae) { //Fai niente } finally { //Fai niente } } /// <summary>Carica la struttura</summary> /// <param name="needle">Path da cui partire</param> public void Load(string needle) { if (FileList == null) FileList = new List<string>(); //Cancella la lista dei files. FileList.Clear(); //Cancella i nodi this.Nodes.Clear(); //prendi il nodo principale. TreeNode n_node = getNode(needle); n_node.Nodes.Add("."); this.Nodes.Add(n_node); //Espando il nodo root. this.Nodes[0].Expand(); //Conteggia i files [si può omettere] FileCount = 0; FileSystemCounter.Count(needle, Format, SubFolders, ref FileCount); } /// <summary>Crea il nodo dell'albero</summary> /// <param name="path">La cartella del Nodo.</param> /// <returns>TreeNode</returns> private TreeNode getNode(string path) { TreeNode r_node = new TreeNode(); int limit = path.LastIndexOf('\\') + 1; string name = path.Substring(limit, (path.Length - limit)); if (name.Length < 1) name = path.Substring(0, path.Length - 1); r_node.Text = name; r_node.Tag = path; return r_node; } } }

ecco qui...

spero si capisca come usarlo ^^

Non c'è emozione; c'è pace.
Non c'è ignoranza; c'è conoscenza.
Non c'è inquietudine; c'è serenità.
Non c'è caos; c'è armonia.
Non c'è morte; c'è la Forza.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5