【发布时间】:2010-12-30 13:00:29
【问题描述】:
如何使用目录作为字符串填充 TreeView。我正在使用 FolderBrowserDialog 来选择一个文件夹,并使用 SelectedPath 属性来获取字符串路径(即 C:\Users\Admin)。
另外,我可以查看这样的文件吗?
【问题讨论】:
如何使用目录作为字符串填充 TreeView。我正在使用 FolderBrowserDialog 来选择一个文件夹,并使用 SelectedPath 属性来获取字符串路径(即 C:\Users\Admin)。
另外,我可以查看这样的文件吗?
【问题讨论】:
将目录节点添加到树视图。将节点名称设置为完整路径,将文本设置为目录名称。
递归地将节点添加到树视图。使用 System.IO DirectoryInfo 和 FileInfo 集合来获取每个 DirectoryInfo 对象中的文件和目录。使递归函数的终止条件为没有子目录的情况。
【讨论】:
private void button1_Click(object sender, EventArgs e)
{
FolderBrowserDialog dialog = new FolderBrowserDialog();
if (dialog.ShowDialog() != DialogResult.OK) { return; }
this.treeView1.Nodes.Add(TraverseDirectory(dialog.SelectedPath));
}
private TreeNode TraverseDirectory(string path)
{
TreeNode result = new TreeNode(path);
foreach (var subdirectory in Directory.GetDirectories(path))
{
result.Nodes.Add(TraverseDirectory(subdirectory));
}
return result;
}
【讨论】:
您可以考虑使用Shell MegaPack 中的FolderView 和FileView 等控件。它们可以放在您自己的表单中,而不是弹出模式对话框。
【讨论】: