如何循环文件夹树以生成文件夹路径?

时间:2016-03-10 14:22:00

标签: java c# json loops

我有这种树结构。

FolderTree

如何从中生成文件夹路径;

类似:folder1 / chilfolder1 / childfolder2 / childfolder3

对树中的所有文件夹执行此操作:)

2 个答案:

答案 0 :(得分:0)

您称为文件文件夹的对象只是JSON序列化对象内的对象。因此,如果您想要制作URIs(唯一资源标识符),则应分析此数据并逐个节点地向下移动到对象中,添加\(路径分隔符)和{{ 1}}当前节点名称的值。

答案 1 :(得分:0)

最简单的方法是使用众所周知的深度优先搜索算法。请考虑以下c#伪代码:

class Node {
   public string Name;
   public IEnumerbale<Node> Children;
}

void Main(){
   var tree = new List<Node>();//fill it somehow
   foreach(var node in tree){
      DFS(node);
   }
}

void DFS(Node root){
   foreach(var node in root.Children){
      node.Name = root.Name + '/' + node.Name;
      DFS(node);
   }  
}

运行此代码后,您将获得存储在每个Name

Node属性中的全名