예제 #1
0
        private void LoadArchives()
        {
            Console.WriteLine("Indexing files...");
            _archiveTable = new Dictionary <string, Archive>();
            _fileTable    = new Dictionary <string, List <Archive> >();
            var files = Directory.EnumerateFiles(LeagueLocations.GetArchivePath(_leaguePath), "*.raf", SearchOption.AllDirectories).ToArray();

            for (int i = 0; i < files.Length; i++)
            {
                var archive = _reader.ReadArchive(files[i]);
                _archiveTable[archive.FilePath] = archive;
                foreach (var kvp in archive.Files)
                {
                    if (!_fileTable.ContainsKey(kvp.Key))
                    {
                        _fileTable[kvp.Key] = new List <Archive>();
                        _fileTable[kvp.Key].Add(archive);
                    }
                    else if (_indexTable.ContainsKey(kvp.Key) && _indexTable[kvp.Key].ArchiveId == archive.GetManagerIndex())
                    {
                        _fileTable[kvp.Key].Add(archive);
                    }
                }
            }
        }
예제 #2
0
 public BackupManager(string leaguePath)
 {
     _leaguePath   = leaguePath;
     _archivePath  = LeagueLocations.GetArchivePath(leaguePath);
     _backupPath   = LeagueLocations.GetBackupPath(leaguePath);
     _manifestPath = LeagueLocations.GetManifestPath(leaguePath);
 }