private void ReadDirectoryEntry(DirectoryEntry rootEntry, UInt32 entryID)
        {
            UInt32 leftSiblingEntryID, rightSiblingEntryID, childEntryID;
            DirectoryEntry entry = GetDirectoryEntry(entryID, rootEntry, out leftSiblingEntryID, out rightSiblingEntryID, out childEntryID);

            if (entry == null || entry.EntryType == DirectoryEntryType.Invalid)
            {
                return;
            }

            rootEntry.AddChild(entry);

            if (leftSiblingEntryID < UInt32.MaxValue)//有左兄弟节点
            {
                this.ReadDirectoryEntry(rootEntry, leftSiblingEntryID);
            }

            if (rightSiblingEntryID < UInt32.MaxValue)//有右兄弟节点
            {
                this.ReadDirectoryEntry(rootEntry, rightSiblingEntryID);
            }

            if (childEntryID < UInt32.MaxValue)//有孩子节点
            {
                this.ReadDirectoryEntry(entry, childEntryID);
            }
        }