public void Parse(string pattern)
        {
            pattern = pattern.Replace(@"\\", @"\"); //remove double slashes
            //no wildcards so just a folder i.e. c:\temp)
            if (pattern.IndexOf("*") == -1)
            {
                Folder = pattern;
                return;
            }

            // c:\temp\auto*.cs
            var regex = new Regex(@"[a-zA-Z0-9]\*.");

            if (regex.IsMatch(pattern))
            {
                SearchPattern = Path.GetFileName(pattern);
                Folder        = pattern.Substring(0, pattern.LastIndexOf("\\") + 1);
                if (Folder.IndexOf("\\**\\") >= 0)
                {
                    Recursive = true;
                    Folder    = Folder.Replace("\\**\\", "\\");
                }
            }
            else
            {
                SearchPattern = pattern.Substring(pattern.IndexOf("*"));
                Folder        = pattern.Substring(0, pattern.IndexOf("*"));

                if (SearchPattern.IndexOf("**") >= 0)
                {
                    Recursive     = true;
                    SearchPattern = SearchPattern.Substring(SearchPattern.IndexOf("**") + 3);
                }
            }
        }