You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C#中通过Mega链接将文件夹内容填充到Treeview中?

问题分析

你的代码目前存在两个核心问题:

  • 直接将所有文件夹、文件都添加到TreeView的根节点,没有利用Mega节点的ParentId属性构建层级关系,导致无法展示完整路径结构
  • 代码末尾调用了mainWindow.treeView1.Nodes.Clear(),会清空所有刚添加的节点,最终TreeView没有任何内容
解决方案

要实现按完整路径填充TreeView,需要通过ParentId建立节点的父子映射,递归构建层级结构。以下是修改后的完整代码:

private void LoadMegaTree(string URL, string rootName)
{
    // 初始化Mega客户端并登录,用using自动管理资源释放
    using var client = new MegaApiClient();
    client.Login(Form3.User, Form3.Pass);

    Uri fileLink = new Uri(URL);
    IEnumerable<INode> nodes = client.GetNodesFromLink(fileLink);

    // 将所有节点存入字典,方便通过ID快速查找父节点
    var nodeDict = nodes.ToDictionary(n => n.Id);

    // 找到共享链接对应的根节点(ParentId为空的节点即为根)
    var rootMegaNode = nodes.FirstOrDefault(n => string.IsNullOrEmpty(n.ParentId));
    if (rootMegaNode == null)
        return;

    // 创建TreeView的根节点,优先使用传入的name,否则用Mega根节点名称
    var rootTreeNode = new TreeNode(string.IsNullOrEmpty(rootName) ? rootMegaNode.Name : rootName);

    // 递归构建子节点层级
    BuildTreeNodeHierarchy(rootMegaNode, rootTreeNode, nodeDict);

    // 清空TreeView原有内容,添加新构建的根节点
    mainWindow.treeView1.Nodes.Clear();
    mainWindow.treeView1.Nodes.Add(rootTreeNode);
}

// 递归构建TreeNode层级的辅助方法
private void BuildTreeNodeHierarchy(INode currentMegaNode, TreeNode currentTreeNode, Dictionary<string, INode> nodeDict)
{
    // 获取当前节点的所有子节点
    var childNodes = nodeDict.Values.Where(n => n.ParentId == currentMegaNode.Id);

    foreach (var child in childNodes)
    {
        var childTreeNode = new TreeNode(child.Name);
        
        // 如果是文件夹,继续递归构建其子节点;如果是文件,直接添加
        if (child.Type == NodeType.Directory)
        {
            BuildTreeNodeHierarchy(child, childTreeNode, nodeDict);
        }
        
        currentTreeNode.Nodes.Add(childTreeNode);
    }
}
关键说明
  • 使用using语句管理MegaApiClient,确保资源自动释放,替代手动Dispose
  • 通过ToDictionary建立节点ID到节点的映射,高效查找父/子节点
  • 递归方法BuildTreeNodeHierarchy负责遍历每个文件夹的子节点,构建嵌套的TreeView结构
  • 最后先清空原有节点,再添加完整的层级根节点,避免重复内容

内容的提问来源于stack exchange,提问作者JoseLo Ch H

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 10:27:19