public Task Save(IFileSystem fileSystem, UPath savePath, SaveContext saveContext) { var fileStream = fileSystem.OpenFile(savePath, FileMode.Create, FileAccess.Write); _jarc.Save(fileStream, Files); return(Task.CompletedTask); }
public Task Save(IFileSystem fileSystem, UPath savePath, SaveContext saveContext) { var fileStream = fileSystem.OpenFile(savePath, FileMode.Create, FileAccess.Write); switch (_magic) { case "jARC": _jarc.Save(fileStream, Files); break; case "jCMP": _jcmp.Save(fileStream, Files); break; } return(Task.CompletedTask); }
public void Save(Stream output, IList <IArchiveFileInfo> files) { using var bw = new BinaryWriterX(output); // Calculate offsets var dataOffset = HeaderSize; // Save and compress jarc var jarcStream = new MemoryStream(); _jarc.Save(jarcStream, files); jarcStream.Position = 0; output.Position = dataOffset; Compressions.ZLib.Build().Compress(jarcStream, output); // Write header _header.decompSize = (int)jarcStream.Length; _header.compSize = (int)(output.Length - HeaderSize); _header.fileSize = (int)output.Length; output.Position = 0; bw.WriteType(_header); }