/// <summary>
        /// Returns all files in the specified path with the specified extension.
        /// </summary>
        public string[] GetFileList(string path, string extension)
        {
            // "[vehicles]"
            // "[vehicles]vehicles\warthog\warthog.vehicle"
            // "[vehicles]vehicles\warthog\warthog.vehicle[dependencies]
            // "[vehicles]vehicles\warthog\warthog.vehicle[dependencies]vehicles\warthog\warthog.gbxmodel"
            ObjectViewPath objPath = new ObjectViewPath(path);

            if (objPath.Tag != "")
            {
                // Get the dependencies of this tag.
                // HACK: This is hardcoded - need to decide on how to determine these items.
                //DependencyTagLibrary dep = new DependencyTagLibrary(new TagFileName(objPath.Tag, MapfileVersion.HALOPC, TagSource.Archive));
                DependencyBuilder builder = new DependencyBuilder(new TagFileName(objPath.Tag, MapfileVersion.HALOPC, TagSource.Archive));

                StringCollection strings  = new StringCollection();
                string           basePath = objPath.Path;
                foreach (string s in builder.Dependencies)
                {
                    if (s != "")
                    {
                        strings.Add(basePath + "[dependencies]" + s);
                    }
                }
                string[] filePaths = new string[strings.Count];
                strings.CopyTo(filePaths, 0);
                return(filePaths);
            }
            return(new string[0]);
        }
        public DependencyTagLibrary(params TagFileName[] tags)
        {
            this.tags = tags;

            ArrayList deps = new ArrayList();

            foreach (TagFileName tag in tags)
            {
                DependencyBuilder db = new DependencyBuilder(tag);
                deps.AddRange(db.Dependencies);
            }
            foreach (string dep in deps)
            {
                fileSystem.Add(dep);
            }
        }