Пример #1
0
        private void OpenAllSaves()
        {
            if (SaveDir == null)
            {
                return;
            }

            string[] files = Fs.GetFileSystemEntries(SaveDir, "*");

            foreach (string file in files)
            {
                Savefile.Savefile save     = null;
                string            saveName = Path.GetFileNameWithoutExtension(file);

                try
                {
                    Stream stream = Fs.OpenFile(file, FileMode.Open);

                    string sdPath = "/" + Util.GetRelativePath(file, SaveDir).Replace('\\', '/');
                    var    nax0   = new Nax0(Keyset, stream, sdPath, false);
                    save = new Savefile.Savefile(Keyset, nax0.Stream, false);
                }
                catch (Exception ex)
                {
                    Console.WriteLine($"{ex.Message} File: {file}");
                }

                if (save != null && saveName != null)
                {
                    Saves[saveName] = save;
                }
            }
        }
Пример #2
0
        public static void Extract(this Savefile save, string outDir, IProgressReport logger = null)
        {
            foreach (FileEntry file in save.Files)
            {
                Stream stream  = save.OpenFile(file);
                string outName = outDir + file.FullPath;
                string dir     = Path.GetDirectoryName(outName);
                if (!string.IsNullOrWhiteSpace(dir))
                {
                    Directory.CreateDirectory(dir);
                }

                using (var outFile = new FileStream(outName, FileMode.Create, FileAccess.ReadWrite))
                {
                    logger?.LogMessage(file.FullPath);
                    stream.CopyStream(outFile, stream.Length, logger);
                }
            }
        }