public static string[] GetVersions(string product)
        {
            CheckProduct(product);

            string          file;
            int             pos;
            List <TVersion> vers = new List <TVersion>();

            foreach (string f in Directory.GetDirectories(CSettings.ProductDirectory(product)))
            {
                pos = f.LastIndexOf('\\');
                if (pos >= 0)
                {
                    file = f.Substring(pos + 1);
                }
                else
                {
                    file = f;
                }

                if (file.ToArray()[0] >= '0' && file.ToArray()[0] <= '9')
                {
                    vers.Add(GetVersionObject(file));
                }
            }

            return((from f in vers orderby f.major, f.minor, f.relase select f.name).ToArray());
        }
        public static string[] GetFileList(string product, string version)
        {
            CheckProduct(product);

            string        dir = CSettings.ProductDirectory(product) + "\\" + version;
            string        file;
            int           pos;
            List <string> all = new List <string>();

            foreach (string f in Directory.GetFiles(dir))
            {
                pos = f.LastIndexOf('\\');
                if (pos >= 0)
                {
                    file = f.Substring(pos + 1);
                }
                else
                {
                    file = f;
                }

                if (string.Compare(file, ALERT, true) != 0)
                {
                    all.Add(file);
                }
            }

            return(all.ToArray());
        }
        public static void GetFileInfo(string product, string version, string file, out string fileName, out uint fileLen)
        {
            CheckProduct(product);

            fileName = CSettings.ProductDirectory(product) + "\\" + version + "\\" + file;

            if (!File.Exists(fileName))
            {
                throw new Exception(fileName + " not found!");
            }

            fileLen = (uint)(new FileInfo(fileName).Length);
        }
        public static void GetAlert(string product, string version, out string fileName, out uint fileLen)
        {
            CheckProduct(product);

            fileName = CSettings.ProductDirectory(product) + "\\" + version + "\\" + ALERT;
            fileLen  = 0;
            if (!File.Exists(fileName))
            {
                return;
            }
            fileLen = (uint)(new FileInfo(fileName).Length);

            //alert = File.ReadAllText(fileName);
        }