示例#1
0
        public void PopulateExtended(string modsRootFolder)
        {
            var modFolder = Path.Combine(modsRootFolder, ModId);
            var modFile   = $"{modFolder}.mod";

            if (string.IsNullOrWhiteSpace(modFolder) || !Directory.Exists(modFolder))
            {
                return;
            }
            if (string.IsNullOrWhiteSpace(modFile) || !File.Exists(modFile))
            {
                return;
            }

            LastWriteTime = File.GetLastWriteTime(modFile);

            var modTimeFile = Path.Combine(modFolder, Config.Default.LastUpdatedTimeFile);

            if (!string.IsNullOrWhiteSpace(modTimeFile) && File.Exists(modTimeFile))
            {
                LastTimeUpdated = ModUtils.GetModLatestTime(modTimeFile);
            }

            string modId;
            Dictionary <string, string> metaInformation;
            List <string> mapNames;

            ModUtils.ReadModFile(modFile, out modId, out metaInformation, out mapNames);

            ModType = metaInformation != null && metaInformation.ContainsKey("ModType") ? metaInformation["ModType"] : ModUtils.MODTYPE_UNKNOWN;
            MapName = mapNames != null && mapNames.Count > 0 ? mapNames[0] : string.Empty;
        }
示例#2
0
        public void PopulateExtended(string modsRootFolder)
        {
            try
            {
                var modFolder = Path.Combine(modsRootFolder, ModId);
                var modFile   = $"{modFolder}.mod";

                if (string.IsNullOrWhiteSpace(modFolder) || !Directory.Exists(modFolder))
                {
                    return;
                }
                if (string.IsNullOrWhiteSpace(modFile) || !File.Exists(modFile))
                {
                    return;
                }

                LastWriteTime = File.GetLastWriteTime(modFile);

                var modTimeFile = Path.Combine(modFolder, Config.Default.LastUpdatedTimeFile);
                if (!string.IsNullOrWhiteSpace(modTimeFile) && File.Exists(modTimeFile))
                {
                    LastTimeUpdated = ModUtils.GetModLatestTime(modTimeFile);
                }

                ModUtils.ReadModFile(modFile, out string modId, out Dictionary <string, string> metaInformation, out List <string> mapNames);

                ModType = metaInformation != null && metaInformation.ContainsKey("ModType") ? metaInformation["ModType"] : ModUtils.MODTYPE_UNKNOWN;
                MapName = mapNames != null && mapNames.Count > 0 ? mapNames[0] : string.Empty;

                FolderSize = 0;
                foreach (var file in new DirectoryInfo(modFolder).GetFiles("*.*", SearchOption.AllDirectories))
                {
                    FolderSize += file.Length;
                }
            }
            catch (Exception)
            {
                // do nothing
            }
        }
        public void PopulateExtended(string modsRootFolder)
        {
            try
            {
                FolderSize    = 0;
                LastWriteTime = DateTime.MinValue;
                ModType       = ModUtils.MODTYPE_UNKNOWN;
                MapName       = string.Empty;

                if (string.IsNullOrWhiteSpace(modsRootFolder) || !Directory.Exists(modsRootFolder))
                {
                    return;
                }

                var modFileName = $"{ModId}.pak";
                var modFile     = Path.Combine(modsRootFolder, modFileName);
                if (!string.IsNullOrWhiteSpace(modFile) && File.Exists(modFile))
                {
                    var file = new FileInfo(modFile);
                    LastWriteTime = file.LastWriteTime;
                    FolderSize   += file.Length;
                    ModType       = ModUtils.MODTYPE_MOD;
                }

                var timeFileName = $"{ModId}.txt";
                var modTimeFile  = Path.Combine(modsRootFolder, timeFileName);
                if (!string.IsNullOrWhiteSpace(modTimeFile) && File.Exists(modTimeFile))
                {
                    LastTimeUpdated = ModUtils.GetModLatestTime(modTimeFile);
                }
            }
            catch
            {
                // do nothing
            }
        }