public void LoadPacketDefiniton() { var fileName = Path.Combine(_folderContainsUpdate, _packetdefinitionXml); if (File.Exists(fileName)) { PacketDefinitionsLoader loader = new PacketDefinitionsLoader(); Definition = loader.LoadPacket(fileName); } }
public void CreatePacket(Packet packetDefinition, List<string> fileList, List<string> addFileList, string archFileName) { FileStream fsOut = File.Create(archFileName); ZipOutputStream zip = new ZipOutputStream(fsOut); zip.SetLevel(9); var fileName = Path.GetTempFileName(); PacketDefinitionsLoader loader = new PacketDefinitionsLoader(); packetDefinition.ChangedFiles = packetDefinition.ChangedFiles.Select( x => FolderOffset != string.Empty ? ZipEntry.CleanName(x.Replace(FolderOffset, string.Empty)) : ZipEntry.CleanName(Path.GetFileName(x))).ToList(); loader.SavePacket(packetDefinition, fileName); PutFileToZip(fileName, _packetdefinitionXml, zip); try { File.Delete(fileName); } catch (Exception) { } foreach (var path in fileList) { string entryName = FolderOffset != string.Empty ? path.Replace(FolderOffset, string.Empty) : Path.GetFileName(path); entryName = ZipEntry.CleanName(entryName); PutFileToZip(path, entryName, zip); } foreach (var path in addFileList) { string entryName = AdditionalFilesOffset + Path.GetFileName(path); entryName = ZipEntry.CleanName(entryName); PutFileToZip(path, entryName, zip); } zip.IsStreamOwner = true; zip.Close(); }
public void SavePacketTest() { Packet packet = new Packet(); packet.PacketIdentification = new PacketIdentificationType(); packet.PacketIdentification.Number = "2"; packet.PacketIdentification.Date = DateTime.Now; packet.PacketIdentification.Guid = Guid.NewGuid().ToString(); packet.PacketIdentification.ProgramGuid = Guid.NewGuid().ToString(); packet.PacketIdentification.ProgramVersion = "5.2016.2.2"; packet.PreviousPackets = new List<PacketIdentificationType>(); var sss = new PacketIdentificationType { Number = "1", Date = DateTime.Now.AddDays(-1), Guid = Guid.NewGuid().ToString(), ProgramGuid = Guid.NewGuid().ToString(), ProgramVersion = "5.2016.2.2" }; packet.PreviousPackets.Add(sss); packet.ActionsBeforeUpdate = new ActionsType(); packet.ActionsBeforeUpdate.Runs = new List<RunAppType>(); packet.ActionsBeforeUpdate.Runs.Add(new RunAppType() { RelPath = "asdd", Args = "asddvk", Value = "" }); packet.ActionsBeforeUpdate.Runs.Add(new RunAppType() { RelPath = "as", Args = "asddvklklfk", Value = "94056" }); packet.ActionsBeforeUpdate.Scripts = new List<string>(); packet.ActionsBeforeUpdate.Scripts.Add("dfjhdgfg"); packet.ActionsBeforeUpdate.Scripts.Add("cxvbvb"); packet.ChangedFiles = new List<string>() {"asd", "xccc", "aaaaaa"}; packet.ActionsAfterUpdate = new ActionsType(); packet.ActionsAfterUpdate.Runs = new List<RunAppType>(); packet.ActionsAfterUpdate.Runs.Add(new RunAppType() { RelPath = "asdd 2", Args = "asddvklklfk 2 ", Value = "94056" }); packet.ActionsAfterUpdate.Runs.Add(new RunAppType() { RelPath = "asdd" , Args = "asddvklklfk", Value = "94056" }); packet.UpdateMessage = string.Empty; PacketDefinitionsLoader definitionsLoader = new PacketDefinitionsLoader(); var fileName = Path.GetTempFileName(); definitionsLoader.SavePacket(packet, fileName); }
public void LoadPacketTest() { PacketDefinitionsLoader definitionsLoader = new PacketDefinitionsLoader(); var packet = definitionsLoader.LoadPacket(@"D:\programming\Uppy\UPPY.Updater\Examples\ExamplePacket.xml"); Assert.IsNotNull(packet); }
public Packet UnpackFile(string archFileName, string outFolder) { ZipFile zf = null; try { FileStream fs = File.OpenRead(archFileName); zf = new ZipFile(fs); foreach (ZipEntry zipEntry in zf) { if (!zipEntry.IsFile) { continue; // Ignore directories } var entryFileName = zipEntry.Name; // to remove the folder from the entry:- entryFileName = Path.GetFileName(entryFileName); // Optionally match entrynames against a selection list here to skip as desired. // The unpacked length is available in the zipEntry.Size property. byte[] buffer = new byte[4096]; // 4K is optimum Stream zipStream = zf.GetInputStream(zipEntry); // Manipulate the output filename here as desired. String fullZipToPath = Path.Combine(outFolder, entryFileName); string directoryName = Path.GetDirectoryName(fullZipToPath); if (directoryName.Length > 0) Directory.CreateDirectory(directoryName); // Unzip file in buffered chunks. This is just as fast as unpacking to a buffer the full size // of the file, but does not waste memory. // The "using" will close the stream even if an exception occurs. using (FileStream streamWriter = File.Create(fullZipToPath)) { StreamUtils.Copy(zipStream, streamWriter, buffer); } } } catch (Exception) { return null; } finally { if (zf != null) { zf.IsStreamOwner = true; // Makes close also shut the underlying stream zf.Close(); // Ensure we release resources } } var fileDef = Path.Combine(outFolder, _packetdefinitionXml); if (!File.Exists(fileDef)) { return null; } var loader = new PacketDefinitionsLoader(); return loader.LoadPacket(fileDef); }