Спасибо тебе большое!
UPD. Только была проблема с импортом - некоторые папки попадали в не свой ЛВЛ.
Если дочерние элементы находятся на одном уровне с предыдущим элементом, то их нужно добавлять в одну и ту же папку, но в данном коде это не учитывается.
Фиксанула:
if S.I['level'] = 1 then
begin
TreeView.AddObject(I);
Last := I;
end
else
begin
while S.I['level'] <= Last.Level do
begin
Last := Last.ParentItem;
end;
Last.AddObject(I);
Last := I;
end;
Код добавляет новый элемент в папку на уровне выше, если уровень нового элемента меньше или равен уровню предыдущего элемента, иначе добавляет его в предыдущую папку. Кроме того, в начале обработки первого элемента устанавливается Last в корневой элемент TreeView.
Может потомкам пригодится. Хотя, делфи уже мертв((