Sub per visualizzare i file dell’applicazione con un controllo Treeview, escludendo directory e file non necessari.
Sub che viene lanciata sull'evento che popola il treeview, potrebbe essere un Page_load per es:
private void populatetree()
{
// directory principale
directoryinfo rootfolder = new directoryinfo(server.mappath("~/"));
treenode root = aggiunginodi(rootfolder, null);
aggiungifile(rootfolder, root);
tvfile.nodes.add(root);
// riduco tutti i "rami"
tvfile.collapseall();
// espando la root
tvfile.nodes[0].expand();
}
{
// directory principale
directoryinfo rootfolder = new directoryinfo(server.mappath("~/"));
treenode root = aggiunginodi(rootfolder, null);
aggiungifile(rootfolder, root);
tvfile.nodes.add(root);
// riduco tutti i "rami"
tvfile.collapseall();
// espando la root
tvfile.nodes[0].expand();
}
aggiunge i file ai folder
/// <summary>
/// aggiungi file alla directory in esame
/// </summary>
/// <param name="subfolder"></param>
/// <param name="node"></param>
private void aggiungifile(directoryinfo subfolder, treenode node)
{
// tipi di file da aggiungere
string[] extensionfile = { ".aspx", ".html", ".htm", ".jpg", ".jpeg", ".gif", ".txt", ".png" };
foreach (fileinfo f in subfolder.getfiles("*.*"))
{
if (extensionfile.contains(f.extension.tolower()))
{
treenode child = new treenode(f.name);
node.childnodes.add(child);
}
}
}
/// aggiungi file alla directory in esame
/// </summary>
/// <param name="subfolder"></param>
/// <param name="node"></param>
private void aggiungifile(directoryinfo subfolder, treenode node)
{
// tipi di file da aggiungere
string[] extensionfile = { ".aspx", ".html", ".htm", ".jpg", ".jpeg", ".gif", ".txt", ".png" };
foreach (fileinfo f in subfolder.getfiles("*.*"))
{
if (extensionfile.contains(f.extension.tolower()))
{
treenode child = new treenode(f.name);
node.childnodes.add(child);
}
}
}
aggiunge i folder al treeview
/// <summary>
/// aggiungi un nodo all'albero
/// </summary>
/// <param name="folder"></param>
/// <param name="parentnode"></param>
/// <returns></returns>
treenode aggiunginodi(directoryinfo folder, treenode parentnode)
{
// folder da escludere
string[] foldertoexclude = { "app_data", "bin", "obj", "properties" };
string virtualfolderpath;
if (parentnode == null)
virtualfolderpath = "~/";
else
virtualfolderpath = parentnode.value + folder.name + "/";
treenode node = null;
// controllo sulle cartelle da escludere
if (!foldertoexclude.contains(folder.name.tolower()))
{
// creo il nodo
node = new treenode(folder.name, virtualfolderpath);
// info sulla directory
directoryinfo[] subfolders = folder.getdirectories();
// ciclo sulla directory
foreach (directoryinfo subfolder in subfolders)
{
if (!foldertoexclude.contains(subfolder.name.tolower()))
{
// aggiungi eventualmente la sottodirectory
treenode child = aggiunginodi(subfolder, node);
node.childnodes.add(child);
// aggiungi i file
aggiungifile(subfolder, child);
}
}
}
return node;
}
/// aggiungi un nodo all'albero
/// </summary>
/// <param name="folder"></param>
/// <param name="parentnode"></param>
/// <returns></returns>
treenode aggiunginodi(directoryinfo folder, treenode parentnode)
{
// folder da escludere
string[] foldertoexclude = { "app_data", "bin", "obj", "properties" };
string virtualfolderpath;
if (parentnode == null)
virtualfolderpath = "~/";
else
virtualfolderpath = parentnode.value + folder.name + "/";
treenode node = null;
// controllo sulle cartelle da escludere
if (!foldertoexclude.contains(folder.name.tolower()))
{
// creo il nodo
node = new treenode(folder.name, virtualfolderpath);
// info sulla directory
directoryinfo[] subfolders = folder.getdirectories();
// ciclo sulla directory
foreach (directoryinfo subfolder in subfolders)
{
if (!foldertoexclude.contains(subfolder.name.tolower()))
{
// aggiungi eventualmente la sottodirectory
treenode child = aggiunginodi(subfolder, node);
node.childnodes.add(child);
// aggiungi i file
aggiungifile(subfolder, child);
}
}
}
return node;
}
controllo treeview
<asp:treeview id="tvfile" runat="server" font-names="verdana" font-size="12px" forecolor="#666666" imageset="xpfileexplorer">
<nodestyle horizontalpadding="8px" imageurl="~/images/folderclose.gif" nodespacing="2px" verticalpadding="2px" />
<leafnodestyle imageurl="~/images/file.gif" />
</asp:treeview>
<nodestyle horizontalpadding="8px" imageurl="~/images/folderclose.gif" nodespacing="2px" verticalpadding="2px" />
<leafnodestyle imageurl="~/images/file.gif" />
</asp:treeview>


0 commenti
Posta un commento