Esempio n. 1
0
 internal static void FillStorage(RegionsStorage storage, IList<string[]> fileNamesParts, RegionSuffixRegexes regionSuffixRegexes)
 {
     foreach (string[] fileNameStrings in fileNamesParts)
     {
         AddOrAppendRegion(storage, fileNameStrings, regionSuffixRegexes);
     }
 }
Esempio n. 2
0
 private RegionsStorage CreateRegionsStorage()
 {
     DirectoryInfo di = new DirectoryInfo(SelectedFolderPath);
     var files = di.GetFiles("*.png");
     RegionsStorage storage = new RegionsStorage();
     storage.Regions.AddRange(files.Select(file => new Region(file.Name) {ThumbnailImageName = file.FullName}));
     return storage;
 }
Esempio n. 3
0
        /// <summary>
        /// Сгенерировать хранилище регионов из изображений
        /// </summary>
        /// <param name="path">Путь к папке с изображениями</param>
        /// <param name="regionSuffixRegexes">Набор регулярных выражений для парсинга названий</param>
        /// <returns>Хранидище регионов</returns>
        public static RegionsStorage Generate(string path, RegionSuffixRegexes regionSuffixRegexes)
        {
            if (!Directory.Exists(path))
            {
                return DefaultStorage;
            }

            folder = path;
            var storage = new RegionsStorage();
            FileInfo[] files = (new DirectoryInfo(folder)).GetFiles("*_*.png");
            var sortedFileNames = files.Select(file => file.Name).ToList();
            sortedFileNames.Sort();
            var separtedFileNames = sortedFileNames.Select(file=>file.Split(regionSuffixRegexes.Separator)).ToList();

            FillStorage(storage, separtedFileNames, regionSuffixRegexes);

            return storage;
        }
Esempio n. 4
0
 private static void AddOrAppendRegion(RegionsStorage storage, string[] fileNameParts, RegionSuffixRegexes regionSuffixRegexes)
 {
     var region = storage.FindRegion(fileNameParts[0]);
     if (region == null)
     {
         region = new Region(fileNameParts[0]);
         storage.Regions.Add(region);
     }
     FillRegion(region, fileNameParts[1], regionSuffixRegexes);
 }