private void OpenIndexFile(string archive, int i) { try { string dataFolder = CASCConfig.GetDataFolder(); string path = Path.Combine(_config.BasePath, dataFolder, "indices", archive + ".index"); using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) { ParseIndex(fs, i); } } catch { throw new Exception("OpenFile failed!"); } }
private Stream GetDataStream(int index) { if (_dataStreams.TryGetValue(index, out Stream stream)) { return(stream); } string dataFolder = CASCConfig.GetDataFolder(); string dataFile = Path.Combine(_config.BasePath, dataFolder, "data", $"data.{index:D3}"); stream = new FileStream(dataFile, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); _dataStreams[index] = stream; return(stream); }
private static List <string> GetIdxFiles(CASCConfig config) { List <string> latestIdx = new List <string>(); string dataFolder = CASCConfig.GetDataFolder(); string dataPath = Path.Combine(dataFolder, "data"); for (int i = 0; i < 0x10; ++i) { List <string> files = Directory.EnumerateFiles(Path.Combine(config.BasePath, dataPath), $"{i:X2}*.idx").ToList(); if (files.Any()) { latestIdx.Add(files.Last()); } } return(latestIdx); }