Esempio n. 1
0
        private static object ZipArchiveCompressionMethodToNativeDeflateOptionEnum(ZipArchiveCompressionMethod compressionMethod)
        {
            var deflateOptionEnum       = ZipArchiveCompressionMethodToDeflateOptionEnum(compressionMethod);
            var nativeDeflateOptionEnum = ZipDeflateOptionEnumType.Value.GetField(deflateOptionEnum.ToString()).GetValue(null);

            return(nativeDeflateOptionEnum);
        }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 4
0
        private static CompressionMethodEnum ZipArchiveCompressionMethodToCompressionMethodEnum(ZipArchiveCompressionMethod compressionMethod)
        {
            var compressionMethodEnum = CompressionMethodEnum.Deflated;

            switch (compressionMethod)
            {
            case ZipArchiveCompressionMethod.NoCompression:
                compressionMethodEnum = CompressionMethodEnum.Stored;
                break;

            default:
                break;
            }
            return(compressionMethodEnum);
        }
Esempio n. 5
0
        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);
        }