ディレクトリ再帰検索の降順表示について質問します。

<やりたいこと>
@特定のディレクトリの下位階層を無制限に再帰検索して展開表示
Aボタンで判別して最上位ディレクトリのみ表示か、すべて再帰的に展開表示するか選択
B表示されたディレクトリに対してonClickで開閉することが可能
Cソート機能(ディレクトリ名降順表示)

@〜BについてはソースAで動作しますが、Cで四苦八苦しています。
ディレクトリ名の降順表示はソースBの仕組みを使ったり、BASP21のソート機能等も検討しましたが、
問題は入れ子のものを展開していくなかで、途中上位のディレクトリに戻るので
動的配列を使っても展開中で再定義するとおかしくなってしまいます。
ちなみにリアルタイム性と速度を求められるので、テキストやDB格納は現段階では考えておりません。

どなたかアドバイスお願いします。