Я сгенерировал XmlDocument и заполнил его рекурсивным обходом пути к файлу.Документ выглядит более или менее так:
<?xml version="1.0" encoding="utf-16"?>
<Tree>
<Directory name="Root" path="C:\Root">
<Directory name="1" path="C:\Root\1">
<Directory name="3" path="C:\Root\1\3">
<File name="5.png" size="198525440" path="C:\Root\1\3\5.png" />
<File name="6.png" size="736621" path="C:\Root\1\3\6.png" />
</Directory>
<File name="2.png" size="761944" path="C:\Root\1\2.png" />
<File name="3.png" size="2663" path="C:\Root\1\3.png" />
</Directory>
<Directory name="2" path="C:\Root\2">
<File name="4.png" size="324187" path="C:\Root\2\4.png" />
</Directory>
<File name="1.png" size="2663" path="C:\Root\1.png" />
</Directory>
</Tree>
Для структуры каталогов:
C:
C:\Root
C:\1
C:\1\3
C:\1\3\5.png
C:\1\3\6.png
C:\1\2.png
C:\1\3.png
C:\2
C:\2\4.png
C:\1.png
Учитывая приведенное выше дерево, цель состоит в том, чтобы записать дерево на консоль в Humanчитаемая форма выглядит следующим образом:
Root/
+-- 1/
| +-- 3/
| | +-- 5.png
| | +-- 6.png
| +-- 2.png
| +-- 3.png
| +-- 2/
| | +-- 4.png
+-- 1.png
Теперь я могу довольно легко написать функцию, которая повторяет структуру, выводя требуемый текст, но я думаю, что XSLT потенциально может преобразовать XmlDocument в форму, показанную вышенесколько проще.Единственный вопрос, который я хотел бы задать ... как?Я немного нуб, когда дело доходит до XSLT (имеется в виду, полный нуб).Я думаю, что использование преобразования было бы более гибким методом для жесткого кодирования функции обхода и вывода.
Кроме того, было бы неплохо иметь возможность сортировать дерево XML по имени или файлу.размер, сохраняя структуру файлового дерева (сортируйте дочерние элементы каждого узла).Можно ли это сделать с помощью XSLT или я должен написать свой собственный IComparer для этого?
Спасибо за любую помощь, которую вы можете мне оказать.