For populating the drives, assign the DirectoryInfo to the Tag property of the new TreeNode:
foreach (System.IO.DriveInfo drive in drives)
{
if (drive.DriveType == System.IO.DriveType.CDRom)
{
continue;
}
else
{
TreeNode mn = new TreeNode(drive.Name);
treeView1.Nodes.Add(mn);
string str = mn.FullPath;
DirectoryInfo info1 = new DirectoryInfo(@str);
mn.Tag = info1;
GetDirectories(info1.GetDirectories(), mn);
}
}