/// <summary> /// Rebuilds the package using package creation /// </summary> /// <param name="xParams"></param> /// <returns></returns> public bool RebuildPackage(RSAParams xParams) { if (!ActiveCheck()) return false; if (!xParams.Valid) return (xActive = false); CreateSTFS x = new CreateSTFS(); x.HeaderData = xHeader; x.STFSType = xSTFSStruct.ThisType; // Populate foreach (FolderEntry y in xFolderDirectory) x.AddFolder(y.GetPath()); foreach (FileEntry y in xFileDirectory) { DJsIO io = y.xGetTempIO(true); if (io != null && io.Accessed) { io.Close(); x.AddFile(io.FileNameLong, y.GetPath()); } } STFSPackage xreturn = new STFSPackage(x, xParams, VariousFunctions.GetTempFileLocale(), xLog); if (xreturn.ParseSuccess) { xIO.Close(); xreturn.xIO.Close(); if (!VariousFunctions.MoveFile(xreturn.xIO.FileNameLong, xIO.FileNameLong)) return (xActive = false); xreturn.xIO = xIO; SetSamePackage(ref xreturn); xIO.OpenAgain(); return !(xActive = false); } xreturn.xIO.Close(); VariousFunctions.DeleteFile(xreturn.xIO.FileNameLong); return (xActive = false); }
public byte[] RebuildPackageInMemory(RSAParams xParams) { if (!CanRead) { OpenAgain(); } var cstfs = new CreateSTFS(); cstfs.HeaderData.Description = xHeader.Description; cstfs.HeaderData.DeviceID = xHeader.DeviceID; cstfs.HeaderData.ProfileID = xHeader.ProfileID; cstfs.HeaderData.Publisher = xHeader.Publisher; cstfs.HeaderData.SaveConsoleID = xHeader.SaveConsoleID; cstfs.HeaderData.Title_Package = xHeader.Title_Package; cstfs.HeaderData.Title_Display = xHeader.Title_Display; cstfs.HeaderData.ThisType = xHeader.ThisType; cstfs.HeaderData.SaveGameID = xHeader.SaveGameID; cstfs.HeaderData.DataFileCount = xHeader.DataFileCount; cstfs.HeaderData.DataFileSize = xHeader.DataFileSize; cstfs.HeaderData.MediaID = xHeader.MediaID; cstfs.HeaderData.TitleID = xHeader.TitleID; cstfs.HeaderData.Version_ = xHeader.Version_; cstfs.HeaderData.Version_Base = xHeader.Version_Base; cstfs.HeaderData.MetaDataVersion = xHeader.MetaDataVersion; cstfs.HeaderData.Platform = xHeader.Platform; cstfs.HeaderData.SeasonNumber = xHeader.SeasonNumber; cstfs.STFSType = xSTFSStruct.ThisType; // Populate foreach (var y in xFolderDirectory) cstfs.AddFolder(y.GetPath()); foreach (var y in xFileDirectory) { cstfs.AddFile(y.ExtractBytes(true), y.GetPath()); } byte[] ret; var xreturn = new STFSPackage(cstfs, xParams, out ret, xLog); if (xreturn.ParseSuccess) { return ret; } xreturn.xIO.Close(); return null; }