void GetMapItemDescs(List <MapItemDescs> mapItemDesces, string dir)
    {
        DirectoryInfo dirInfo = new DirectoryInfo(dir);

        if (!dirInfo.Exists)
        {
            Debug.LogWarning("The dir[" + GameConfig.CustomDataDir + "] is not exsit");
            return;
        }

        DirectoryInfo[] subDirInfos = dirInfo.GetDirectories();

        if (subDirInfos == null || subDirInfos.Length == 0)
        {
            return;
        }


        mMapDescs.Clear();
        ScenarioMapDesc[] map_descs = ScenarioMapUtils.GetMapList(dir);
        for (int i = 0; i < map_descs.Length; i++)
        {
            mMapDescs.Add(map_descs[i].Name, map_descs[i]);
        }

        foreach (DirectoryInfo info in subDirInfos)
        {
            MapItemDescs midcs = new MapItemDescs();
            if (mMapDescs.ContainsKey(info.Name))
            {
                ScenarioMapDesc desc = mMapDescs[info.Name];
                midcs.IsDir = false;
                midcs.Name  = desc.Name;
                midcs.Path  = desc.Path;
                midcs.UID   = desc.UID;
            }
            else
            {
                midcs.IsDir = true;
                midcs.Name  = info.Name;
                midcs.Path  = info.FullName;
                midcs.UID   = null;
            }

            mapItemDesces.Add(midcs);
        }
    }