0

我正在尝试通过 TCP 发送目录树结构。树可能在子目录中。我不想发送实际内容,但或多或​​少会在一个字节流中发送列表。这样做的最佳方法是什么?

4

3 回答 3

1

要发送一棵树,只需递归地执行以下操作:

发送根,然后发送它的孩子。

于 2012-06-01T19:43:28.153 回答
0

根据场景,“最佳”有很多解释。如果您可以提供一种格式,使您的客户端(TCP 接收器)更容易使用您的数据,那么这可能是一个好主意。

通常我认为最好的方式是最容易理解的。例如,XML 表示会很好,因为 XML 无处不在——每个人都知道(或者他们应该知道)。有一百万个 COTS 库可以处理它,而且众所周知。

XML 本身也可以使实体包含其他实体,并且默认情况下在节点之间具有父/子 - 因此该格式将很好地反映目录结构。

xml 的缺点是它非常冗长。如果您愿意处理额外的复杂性(并且文件大小在网络应用程序中确实很重要),您可以构建一个小得多的平面文件格式。如果您要使用平面文件表示,请考虑如何在单个数据库表(名称、文件/文件夹、父目录等)中构造数据。

于 2012-06-01T19:42:50.390 回答
0

我认为您对效率的最佳选择(我将假设您的意思是您正在寻找一种相对于其他解决方案需要发送少量字节的解决方案)、可读性和可移植性类似于JSON

{"dir":"/","children":
  [{"dir":"bin","children":
     [{"file":"bash"},
      {"file":"csh"}]
   },
   {"dir":"home","children":null}]}
于 2012-06-01T20:02:21.087 回答