c# - 如何在树视图中显示所有目录?(C#)
问题描述
嗨,这是我的代码,我对此有一些问题。如何将节点添加到最后一个节点的前面?我想创建自己的文件资源管理器。我找到了一个很好的例子,但它使用了其他工具来做到这一点。我的问题只是树视图
public Form1()
{
InitializeComponent();
treeView1.Nodes.Add("Explorer");
}
private void button1_Click(object sender, EventArgs e)
{
FolderBrowserDialog fbd = new FolderBrowserDialog();
if (fbd.ShowDialog() == DialogResult.OK) {
DirectoryInfo directoriyInfo = new DirectoryInfo(fbd.SelectedPath);
try
{
DirectoryInfo[] directories = directoriyInfo.GetDirectories();
foreach (DirectoryInfo directory in directories) {
TreeNode node = treeView1.Nodes[0].Nodes.Add(directory.Name);
foreach (FileInfo files in directory.GetFiles()) {
TreeNode nodes = treeView1.Nodes[0].Nodes[node.Index].Nodes.Add(files.Name);
}
SearchInDirectory(directory , node.Index);
}
}
catch (Exception ex) {
MessageBox.Show(ex.Message);
}
}
}
private void SearchInDirectory(DirectoryInfo directory , int theNode) {
DirectoryInfo[] directories = directory.GetDirectories();
foreach (DirectoryInfo searchDirectory in directories)
{
TreeNode node = treeView1.Nodes[0].Nodes[theNode].Nodes.Add(searchDirectory.Name);
foreach (FileInfo files in searchDirectory.GetFiles())
{
TreeNode nodes = treeView1.Nodes[0].Nodes[theNode].Nodes[node.Index].Nodes.Add(files.Name);
}
SearchInDirectory(searchDirectory , node.Index);
}
}
在这一段代码中。假设我们有 100 个方向。我应该在我的代码中添加 100 Nodes[0].Nodes[0].... 吗?:)
TreeNode nodes = treeView1.Nodes[0].Nodes[theNode].Nodes[node.Index].Nodes.Add(files.Name);
解决方案
推荐阅读
- c++ - 这是创建控制台应用程序的正确方法吗?
- php - Laravel:更新用户最旧的令牌
- use-case - 工厂模式的小而现实的用例?
- laravel - 有没有一种方法可以在不使用 eloquent 循环的情况下获取 laravel 中第三级孩子的所有数据?
- rust - 有没有办法将向量划分为奇数和偶数?
- java - 需要更新的具有自动面部检测功能的 StickerView
- python - 在 csv 文件中用逗号分割一个值
- python - Python,在 np 中查找数字索引的最快方法。大批
- ssh - 复制 ssh 私钥文件
- javascript - 用 jest 在 JS/Vue 中测试黑盒 API