private static object ZipArchiveCompressionMethodToNativeDeflateOptionEnum(ZipArchiveCompressionMethod compressionMethod) { var deflateOptionEnum = ZipArchiveCompressionMethodToDeflateOptionEnum(compressionMethod); var nativeDeflateOptionEnum = ZipDeflateOptionEnumType.Value.GetField(deflateOptionEnum.ToString()).GetValue(null); return(nativeDeflateOptionEnum); }
/// <summary> /// Creates a new ZIP entry in the archive. /// </summary> /// <param name="fileName">The name of the entry in the archive.</param> /// <param name="compressionMethod">The compression method to use.</param> /// <returns>The new archive entry.</returns> /// <exception cref="System.ArgumentNullException">Thrown if <paramref name="fileName"/> is <c>null</c></exception> /// <exception cref="System.ArgumentOutOfRangeException">Thrown if <paramref name="fileName"/> is too long, or <paramref name="compressionMethod"/> indicates improper compression or deflate mode.</exception> /// <exception cref="System.InvalidOperationException">Thrown if archive was opened in read mode, or <paramref name="fileName"/> already exists in the archive.</exception> private ICompressedArchiveEntry CreateZipEntry(string fileName, ZipArchiveCompressionMethod compressionMethod) { var compression = ZipArchiveCompressionMethodToNativeCompressionMethodEnum(compressionMethod); var deflate = ZipArchiveCompressionMethodToNativeDeflateOptionEnum(compressionMethod); var zipFileInfoObject = AddFileMethod.Value.Invoke(_zipArchiveObject, new object[] { fileName, compression, deflate }); var zipFileInfo = new ZipFileInfo(zipFileInfoObject); return(zipFileInfo); }
private ICompressedArchiveEntry CreateZipEntry(string fileName, ZipArchiveCompressionMethod compressionMethod) { ZipEntry entry = null; var zipArchiveEntry = ZipArchive.CreateEntry(fileName, (CompressionLevel)compressionMethod); if (zipArchiveEntry != null) { entry = new ZipEntry(zipArchiveEntry); } return(entry); }
private static CompressionMethodEnum ZipArchiveCompressionMethodToCompressionMethodEnum(ZipArchiveCompressionMethod compressionMethod) { var compressionMethodEnum = CompressionMethodEnum.Deflated; switch (compressionMethod) { case ZipArchiveCompressionMethod.NoCompression: compressionMethodEnum = CompressionMethodEnum.Stored; break; default: break; } return(compressionMethodEnum); }
private static DeflateOptionEnum ZipArchiveCompressionMethodToDeflateOptionEnum(ZipArchiveCompressionMethod compressionMethod) { var deflateOptionEnum = DeflateOptionEnum.Normal; switch (compressionMethod) { case ZipArchiveCompressionMethod.MaximumCompression: deflateOptionEnum = DeflateOptionEnum.Maximum; break; case ZipArchiveCompressionMethod.FastestCompression: deflateOptionEnum = DeflateOptionEnum.SuperFast; break; case ZipArchiveCompressionMethod.NoCompression: deflateOptionEnum = DeflateOptionEnum.None; break; default: break; } return(deflateOptionEnum); }