/// <summary> /// Open an SDS from the FileInfo given. /// </summary> /// <param name="file">info of SDS.</param> private void OpenSDS(FileInfo file) { //backup file before unpacking.. if (!Directory.Exists(file.Directory.FullName + "/BackupSDS")) { Directory.CreateDirectory(file.Directory.FullName + "/BackupSDS"); } //place copy in new folder. string time = string.Format("{0}_{1}_{2}_{3}_{4}", DateTime.Now.TimeOfDay.Hours, DateTime.Now.TimeOfDay.Minutes, DateTime.Now.Day, DateTime.Now.Month, DateTime.Now.Year); string filename = ToolkitSettings.AddTimeDataBackup == true?file.Name.Insert(file.Name.Length - 4, "_" + time) : file.Name; File.Copy(file.FullName, file.Directory.FullName + "/BackupSDS/" + filename, true); Log.WriteLine("Opening SDS: " + file.Name); fileListView.Items.Clear(); ArchiveFile archiveFile; using (var input = File.OpenRead(file.FullName)) { using (Stream data = ArchiveEncryption.Unwrap(input)) { archiveFile = new ArchiveFile(); archiveFile.Deserialize(data ?? input); } } Log.WriteLine("Succesfully unwrapped compressed data"); archiveFile.SaveResources(file); OpenDirectory(new DirectoryInfo(file.Directory.FullName + "/extracted/" + file.Name)); infoText.Text = "Opened SDS.."; }
private void OpenSDS(FileInfo file, bool openDirectory = true) { string backupFolder = Path.Combine(file.Directory.FullName, "BackupSDS"); string extractedFolder = Path.Combine(file.Directory.FullName, "extracted"); //backup file before unpacking.. if (!Directory.Exists(backupFolder)) { Directory.CreateDirectory(backupFolder); } //place copy in new folder. string time = string.Format("{0}_{1}_{2}_{3}_{4}", DateTime.Now.TimeOfDay.Hours, DateTime.Now.TimeOfDay.Minutes, DateTime.Now.Day, DateTime.Now.Month, DateTime.Now.Year); string filename = ToolkitSettings.AddTimeDataBackup == true?file.Name.Insert(file.Name.Length - 4, "_" + time) : file.Name; File.Copy(file.FullName, Path.Combine(backupFolder, filename), true); Log.WriteLine("Opening SDS: " + file.Name); fileListView.Items.Clear(); ArchiveFile archiveFile; using (var input = File.OpenRead(file.FullName)) { using (Stream data = ArchiveEncryption.Unwrap(input)) { archiveFile = new ArchiveFile(); archiveFile.Deserialize(data ?? input); } } Log.WriteLine("Succesfully unwrapped compressed data"); archiveFile.SaveResources(file); if (openDirectory) { var directory = file.Directory; string path = directory.FullName.Remove(0, directory.FullName.IndexOf(originalPath.Name, StringComparison.InvariantCultureIgnoreCase)).TrimEnd('\\'); TreeNode node = folderView.Nodes.FindTreeNodeByFullPath(path); if (!node.Nodes.ContainsKey("extracted")) { var extracted = new TreeNode("extracted"); extracted.Tag = extracted; extracted.Name = "extracted"; extracted.Nodes.Add(file.Name); node.Nodes.Add(extracted); } else { node.Nodes["extracted"].Nodes.Add(file.Name); } OpenDirectory(new DirectoryInfo(Path.Combine(extractedFolder, file.Name))); infoText.Text = "Opened SDS.."; } }
public override bool Open() { string backupFolder = Path.Combine(file.Directory.FullName, "BackupSDS"); string extractedFolder = Path.Combine(file.Directory.FullName, "extracted"); // Only create backups if enabled. if (ToolkitSettings.bBackupEnabled) { // We should backup file before unpacking.. if (!Directory.Exists(backupFolder)) { Directory.CreateDirectory(backupFolder); } // Place the backup in the folder recently created string time = string.Format("{0}_{1}_{2}_{3}_{4}", DateTime.Now.TimeOfDay.Hours, DateTime.Now.TimeOfDay.Minutes, DateTime.Now.Day, DateTime.Now.Month, DateTime.Now.Year); string filename = ToolkitSettings.AddTimeDataBackup == true?file.Name.Insert(file.Name.Length - 4, "_" + time) : file.Name; File.Copy(file.FullName, Path.Combine(backupFolder, filename), true); } // Begin the unpacking process. Log.WriteLine("Opening SDS: " + file.Name); ArchiveFile archiveFile; using (var input = File.OpenRead(file.FullName)) { using (Stream data = ArchiveEncryption.Unwrap(input)) { archiveFile = new ArchiveFile(); archiveFile.Deserialize(data ?? input); } } Log.WriteLine("Successfully unwrapped compressed data"); archiveFile.SaveResources(file); if (File.Exists(file.FullName + ".patch") && GameStorage.Instance.GetSelectedGame().GameType == GamesEnumerator.MafiaII_DE) { DialogResult result = MessageBox.Show("Detected Patch file. Would you like to unpack?", "Toolkit", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (result == DialogResult.Yes) { archiveFile.ExtractPatch(new FileInfo(file.FullName + ".patch")); } } return(true); }
public void LoadArchive(string path) { ArchiveFile archiveFile; using (var input = File.OpenRead(path)) { using (Stream data = ArchiveEncryption.Unwrap(input)) { archiveFile = new ArchiveFile(); archiveFile.Deserialize(data ?? input); } } this._FilePath = path; this._Archive = archiveFile; this._Descriptions = LoadDescriptions(archiveFile.ResourceInfoXml); this.BuildEntryTree(); this.Text += string.Format(": {0}", Path.GetFileName(path)); }
/// <summary> /// Open an SDS from the FileInfo given. /// </summary> /// <param name="file">info of SDS.</param> private void OpenSDS(FileInfo file) { Log.WriteLine("Opening SDS: " + file.Name); fileListView.Items.Clear(); ArchiveFile archiveFile; using (var input = File.OpenRead(file.FullName)) { using (Stream data = ArchiveEncryption.Unwrap(input)) { archiveFile = new ArchiveFile(); archiveFile.Deserialize(data ?? input); } } Log.WriteLine("Succesfully unwrapped compressed data"); archiveFile.SaveResources(file); OpenDirectory(new DirectoryInfo(file.Directory.FullName + "/extracted/" + file.Name)); infoText.Text = "Opened SDS.."; }