I have a tree that I am trying to populate with folders and files. The tree view fills the folders just fine, but not the files. Here is my code:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
PopulateTree();
}
}
private void PopulateTree()
{
var rootFolder = new DirectoryInfo(VirtualImageRoot);
var root = AddNodeAndDescendents(rootFolder, null);
TreeView1.Nodes.Add(root);
}
private TreeNode AddNodeAndDescendents(DirectoryInfo folder, TreeNode parentNode)
{
string virtualFolderPath;
if (parentNode == null)
{
virtualFolderPath = VirtualImageRoot;
}
else
{
virtualFolderPath = parentNode.Value + folder.Name + "/";
}
var node = new TreeNode(folder.Name, virtualFolderPath);
var subFolders = folder.GetDirectories();
foreach (DirectoryInfo subFolder in subFolders)
{
var child = AddNodeAndDescendents(subFolder, node);
foreach (FileInfo file in subFolder.GetFiles())
{
var index = file.FullName.LastIndexOf(@"\", StringComparison.Ordinal);
var strname = file.FullName.Substring(index + 1);
var name = strname.Split('.');
var tn = new TreeNode();
if (name.Length > 1 && name[1].ToLower() == "bch")
{
tn = new TreeNode(name[0], file.FullName);
}
else
{
tn = new TreeNode(name[0], file.FullName);
}
child.ChildNodes.Add(tn);
}
node.ChildNodes.Add(child);
}
return node;
}
This is what my tree looks like:

Here is the image of the files in the folder:

I am trying to show files of type .bch along with folders in my tree structure. Can someone please tell me what I am doing wrong?
source
share