擅长:python、mysql、java
<p>我不认为有什么简单的方法可以做你想做的。至少,如果您是手工编写XML的话,就不会有。在</p>
<p>原因是您需要从根目录开始构建XML文档,从最外面的目录开始,生成最顶端的<code><FileGroup></code>标记。另一方面,您希望在写出每个文件夹中的文件之前深入到子文件夹中,这样叶目录中的文件将首先出现,根目录中的文件将最后出现。这两个目标相互矛盾。在</p>
<p>我认为有两种策略可以用来解决这个问题。在</p>
<p>第一种方法是使用更复杂的方法来编写XML文件。例如,如果使用允许动态创建文档元素的库,而不是仅使用字符串操作,则可以在文件信息上方插入子文件夹信息,即使按照现在相同的顺序处理它们(先处理文件)。我对Python的XML库不是很了解,所以我在这里没有任何具体的建议,但可能开始的地方是关于标准库中<a href="http://docs.python.org/3/library/xml.html" rel="nofollow">^{<cd2>}</a>包的文档(您可能只想要一个像<code>xml.etree.Etree</code>这样的子模块,但我不确定这是否最适合您的任务,所以请查看该包并阅读其中任何一个零件看起来合适)。在</p>
<p>另一个选择是改变获取数据的方式。{cd5>如果你想让某个更高级别的文件返回,那么你应该先把它放回更高的级别。关于这一点的棘手之处在于,您需要先构建更高级别的<code><FileGroup></code>标记,然后才能开始处理它们所在的文件夹。你需要根据文件夹的路径推断出你所处的深度,但是你已经做了一些这方面的工作,所以可能不会太复杂。(顺便说一句,您确实应该使用<code>os.path</code>模块中的函数来进行文件路径操作,而不是像<code>my_path.split("\\")</code>那样做。)</p>