Ejemplo n.º 1
0
        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!");
            }
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }