有没有人知道如何将目录绑定到C#中的树视图,或者知道要跟随的简单教程?感谢
答案 0 :(得分:4)
这样的事情:
public void BindDirectoryToTreeView(string directoryPathToBind)
{
TreeNode rootNode = new TreeNode();
treeView1.Nodes.Add(rootNode);
RecurseFolders(directoryPathToBind, rootNode);
}
public void RecurseFolders(string path, TreeNode node)
{
var dir = new DirectoryInfo(path);
node.Text = dir.Name;
try
{
foreach (var subdir in dir.GetDirectories())
{
var childnode = new TreeNode();
node.Nodes.Add(childnode);
RecurseFolders(subdir.FullName, childnode);
}
}
catch (UnauthorizedAccessException ex)
{
// TODO: write some handler to log and/or deal with
// unauthorized exception cases
}
foreach (var fi in dir.GetFiles().OrderBy(c=>c.Name))
{
var fileNode = new TreeNode(fi.Name);
node.Nodes.Add(fileNode);
}
}
例如,您可以通过调用BindDirectoryToTreeView("c:\");
来调用代码。请注意,您应该在具有此代码的表单上具有名为treeView1的树视图。
答案 1 :(得分:0)
您可以使用简单的递归。不确定要在TreeView中显示的内容,但以下方法可以正常工作
public static void LoadDir(TreeNode t,DirectoryInfo d){
TreeNode tn = new TreeNode(d.name);
t.ChildNodes.Add(TN);
foreach(d.GetDirectories()中的DirectoryInfo dn)
LoadDir(TN,DN); }
您可以将其作为
调用TreeNode tn = new TreeNode(“Root”);
TreeView1.Nodes.Add(TN);
LoadDir(tn,new DirectoryInfo(@“C:\ Oracle”);