Thursday, February 4, 2010

This will load all directiries in all drives

foreach (System.IO.DriveInfo drive in System.IO.DriveInfo.GetDrives())
{
TreeNode node = new TreeNode();
node.Value = drive.Name;
if (drive.IsReady)
{
node.Text = drive.Name +
" - (free space: " + drive.AvailableFreeSpace + ")";
LoadDirectories(node, drive.Name);
}
else
{
node.Text = drive.Name + " - (not ready)";
this.TreeView1.Nodes.Add(node);
}
this.TreeView1.CollapseAll();
}
}



private void LoadDirectories(TreeNode parent, string path)
{
System.IO.DirectoryInfo directory = new System.IO.DirectoryInfo(path);
try
{
foreach (System.IO.DirectoryInfo d in directory.GetDirectories())
{
TreeNode node = new TreeNode(d.Name, d.FullName);
parent.ChildNodes.Add(node);
//Recurs the current directory
LoadDirectories(node, d.FullName);
}
}
catch (System.UnauthorizedAccessException e)
{
parent.Text += " (Access Denied)";
}
catch (System.IO.IOException e)
{
parent.Text += " (Unknown Error: " + e.Message + ")";
}
}

No comments:

Post a Comment