public void RunRestore() { try { RestoreProcess restoreProcess = new RestoreProcess(); //BackupItem selectedBackupItem = gridView2.GetFocusedRow() as BackupItem; string destFolder = $"{GetProfileFolder(profile.Id, profile.Name)}"; restoreProcess.ExtractFileToDirectory(BackUpFilePath, destFolder); // get backup profile var profilePath = $"{destFolder}\\{Constants.ProfileBackUpFileName}"; if (File.Exists(profilePath)) { var mySerializer = new XmlSerializer(typeof(ProfileXML)); // To read the file, create a FileStream. var myFileStream = new FileStream(profilePath, FileMode.Open); // Call the Deserialize method and cast to the object type. var savedProfile = (ProfileXML)mySerializer.Deserialize(myFileStream); myFileStream.Close(); UpdateAutomationProfile(savedProfile); File.Delete(profilePath); } } catch (Exception ex) { } }
public static void RestoreData(string theRarFile, RestoreStatus theRuningStatusInSession) { StartFlag(theRuningStatusInSession); try { //读入静态配置表 StartLittleProcess(theRuningStatusInSession, StaticConfigTable.ReadToTableToString()); StaticConfigTable.ReadToTable(); //准备所需文件夹 StartLittleProcess(theRuningStatusInSession, DiskOperations.PrepareForRestoreToString()); DiskOperations.PrepareForRestore(); //检查Rar压缩器 StartLittleProcess(theRuningStatusInSession, CommandRunner.CheckRarReadyToString()); CommandRunner.CheckRarReady(); //配置日志对象 StartLittleProcess(theRuningStatusInSession, TransferDataLogManager.TryConfigLogObjToString()); TransferDataLogManager.TryConfigLogObj(); //解析Rar数据 StartLittleProcess(theRuningStatusInSession, TransferConfig.AnalyseRarDataToString()); DateTime? fromDay; DateTime? toDay; TransferRule theTransferRule = TransferConfig.AnalyseRarData(theRarFile, out fromDay, out toDay, DiskOperations.DataTemp_ForRestoreDirectory, false, false); //根据规则起另外线程开始工作 RestoreProcess rp = StartRestore; rp.BeginInvoke(theTransferRule, fromDay, toDay, theRuningStatusInSession, null, null); } catch (ApplicationException ae) { FailedFlag(theRuningStatusInSession, ae.Message); } }