Hello All,
Working with Windows form application using C# while developing desktop application, many times we need to show the folder structure in TreeView control, and to do that we have the following code :
private void btnShow(object sender, EventArgs e)
{
DirectoryInfo dirInfo = new DirectoryInfo(" Your Path of the root folder goes here ");
if (dirInfo.Exists)
{
TreeNode mainNode = new TreeNode(txtPath.Text);
fileViewerTreeView.Nodes.Add(mainNode);
AddChildNodes(mainNode, " Your Path of the root folder goes here ");
}
}
Here on a button click, we will add a root node to the TreeView control called "fileViewerTreeView" and than to add all the folders and file which exists inside the
folder, we will call the function called "AddChildNodes" and will pass pass root node, and also the path of the folder, Now this "AddChildNodes" function is a recursive function which will recursively search of all the files and folders under the given path of the folder.
private void AddChildNodes(TreeNode rootNode, string rootFoder)
{
try
{
DirectoryInfo dirs = new DirectoryInfo(rootFoder);
foreach (DirectoryInfo dirInfo in dirs.GetDirectories())
{
TreeNode newnode = new TreeNode(dirInfo.Name);
rootNode.Nodes.Add(newnode);
FileInfo[] nestedFiles = null;
nestedFiles = dirInfo.GetFiles().ToArray();
if (nestedFiles != null && nestedFiles.Length > 0)
{
foreach (FileInfo nestedFile in nestedFiles)
{
newnode.Nodes.Add(nestedFile.Name.ToString());
}
}
if (dirInfo.GetDirectories().Length > 0)
{
AddChildNodes(newnode, dirInfo.FullName);
}
}
FileInfo[] files = dirs.GetFiles(fileType);
foreach (FileInfo file in files)
{
rootNode.Nodes.Add(file.Name.ToString());
}
fileViewerTreeView.ExpandAll();
fileViewerTreeView.CheckBoxes = true;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
}
}
Output of the execution will be reflected on UI like below :
0 Comment(s)