/// <summary>
        /// Search the "CustomGames" folder for binaries (.exe) files to import
        /// </summary>
        private static void FindCustomBinaries(ref CGameData.CTempGameSet tempGameSet)
        {
            List <string> fileList = Directory.EnumerateFiles(GAME_FOLDER_NAME, "*", SearchOption.AllDirectories).Where(s => s.EndsWith(".exe")).ToList();

            foreach (string file in fileList)
            {
                string strTitle  = Path.GetFileNameWithoutExtension(file);
                string strLaunch = Path.GetFullPath(file);
                tempGameSet.InsertGame(strTitle, strLaunch, false, CUSTOM_PLATFORM);
            }
        }
        /// <summary>
        /// Scan the registry for games, add new games to memory and export into JSON document
        /// </summary>
        public static void ScanGames()
        {
            CGameData.CTempGameSet tempGameSet = new CGameData.CTempGameSet();
            List <CRegScanner.RegistryGameData> gameDataList = CRegScanner.GetGames();

            foreach (CRegScanner.RegistryGameData data in gameDataList)
            {
                tempGameSet.InsertGame(data.m_strTitle, data.m_strLaunch, false, data.m_strPlatform);
            }
            CGameFinder.ImportFromFolder(ref tempGameSet);
            CGameData.MergeGameSets(tempGameSet);
            CJsonWrapper.Export(CGameData.GetPlatformGameList(CGameData.GamePlatform.All).ToList());
        }
        /// <summary>
        /// Search the "CustomGames" folder for file shortcuts (.lnk) to import.
        /// </summary>
        /// http://www.saunalahti.fi/janij/blog/2006-12.html#d6d9c7ee-82f9-4781-8594-152efecddae2
        private static void FindCustomLinkFiles(ref CGameData.CTempGameSet tempGameSet)
        {
            List <string> fileList = Directory.EnumerateFiles(GAME_FOLDER_NAME, "*", SearchOption.TopDirectoryOnly).Where(s => s.EndsWith(".lnk")).ToList();

            foreach (string file in fileList)
            {
                string strPathOnly = Path.GetDirectoryName(file);
                strPathOnly = Path.GetFullPath(strPathOnly);
                string strFilenameOnly = Path.GetFileName(file);

                Shell32.Shell      shell      = new Shell32.Shell();
                Shell32.Folder     folder     = shell.NameSpace(strPathOnly);
                Shell32.FolderItem folderItem = folder.ParseName(strFilenameOnly);
                if (folderItem != null)
                {
                    Shell32.ShellLinkObject link = (Shell32.ShellLinkObject)folderItem.GetLink;
                    string strTitle  = Path.GetFileNameWithoutExtension(file);
                    string strLaunch = link.Path;
                    tempGameSet.InsertGame(strTitle, strLaunch, false, CUSTOM_PLATFORM);
                }
            }
        }
 /// <summary>
 /// Find and import games from the binaries found in the "CustomGames" directory
 /// </summary>
 public static void ImportFromFolder(ref CGameData.CTempGameSet tempGameSet)
 {
     CheckCustomFolder();
     FindCustomLinkFiles(ref tempGameSet);
     FindCustomBinaries(ref tempGameSet);
 }