/// <summary>
        /// Returns an array of NodeInfo entries that exist beneath the specified NodeInfo.
        /// </summary>
        public override NodeInfo[] GetChildNodes(NodeInfo info)
        {
            List <NodeInfo>      children = new List <NodeInfo>();
            TagArchiveNodeSource source   = (TagArchiveNodeSource)ParentSource;

            string[] folders = source.Library.GetFolderList("");
            foreach (string folder in folders)
            {
                FolderNodeType nodeType   = source.GetNodeType <FolderNodeType>();
                NodeInfo       folderInfo = new NodeInfo(nodeType, folder);
                children.Add(folderInfo);
            }
            return(children.ToArray());
        }
        /// <summary>
        /// Returns an array of NodeInfo entries that exist beneath the specified NodeInfo.
        /// </summary>
        public override NodeInfo[] GetChildNodes(NodeInfo info)
        {
            List <NodeInfo>      children = new List <NodeInfo>();
            TagArchiveNodeSource source   = (TagArchiveNodeSource)ParentSource;

            string[] folders = source.Library.GetFolderList(info.Identifier);
            foreach (string folder in folders)
            {
                FolderNodeType nodeType = source.GetNodeType <FolderNodeType>();
                NodeInfo       newInfo  = new NodeInfo(nodeType, folder);
                children.Add(newInfo);
            }

            string[] files = source.Library.GetFileList(info.Identifier, "*");
            foreach (string file in files)
            {
                NodeType nodeType = source.GetNodeType(file);
                NodeInfo newInfo  = new NodeInfo(nodeType, file);
                children.Add(newInfo);
            }
            return(children.ToArray());
        }