public static void WriteBinaryPart(Package package, Uri uri, Stream content) { if (package.PartExists(uri)) { package.DeletePart(uri); } PackagePart part = package.CreatePart(uri, MediaTypeNames.Application.Octet, CompressionOption.Fast); using (Stream stream = part.GetStream()) { StreamHelper.StreamToStreamAppend(content, stream); } }
public static void CopyPart(Uri uri, Package source, Package dest, bool overwrite) { #region Check if (ReferenceEquals(uri, null)) { throw new ArgumentNullException("uri"); } if (ReferenceEquals(source, null)) { throw new ArgumentNullException("source"); } if (ReferenceEquals(dest, null)) { throw new ArgumentNullException("dest"); } #endregion Check if (dest.PartExists(uri)) { if (!overwrite) { throw new ArgumentException("Specified part already exists", "uri"); } dest.DeletePart(uri); } PackagePart sourcePart = source.GetPart(uri); PackagePart destPart = dest.CreatePart(uri, sourcePart.ContentType, sourcePart.CompressionOption); using (Stream sourceStream = sourcePart.GetStream()) { using (Stream destStream = destPart.GetStream()) { StreamHelper.StreamToStreamAppend(sourceStream, destStream); } } }