お気に入りフォルダのショートカット取得

C#で、お気に入りフォルダのショートカットを取得しようと思い、
調べてみた。
http://note.phyllo.net/?eid=540651
にあるようにすれば、取得できる。
ただ、サブフォルダをCの再帰関数のような方法で取得している。

これをクラス内でまとめられないかと、初心者ながら考えてみた。

    public class MyFiles {
        private String rootPath_= String.Empty;
        private IList dirs = new ArrayList();

        public MyFiles( String rootPath ){
            this.rootPath_ = rootPath;
            foreach( string sub in Directory.GetDirectories( this.rootPath_) ){
                this.dirs.Add(new MyFiles(sub));
            }
        }

        public IList Nodes {
            get {
                return (IList) Directory.GetFiles(rootPath_);
            }
        }

        public IList Childs
        {
            get
            {
                return (IList)this.dirs;
            }
        }
    }

・・・イマイチ。
ArrayListは本当は、IListジェネリック型にしたかったが、
なぜか、インスタンス化できなかった。(MyFilesクラス内で定義したからか?)

まだamazonからC#の本がこないので、今日はこれ以上は無理。
今持っているC#本は.NETクラスライブラリのCollectionやジェネリックについてまったく解説がないので、明日来る本に期待だ。