public static void Zip(string zipFile, IEnumerable <CompressFile> files, FileMode fileMode = FileMode.Create) { //using (FileStream fs = new FileStream(zipFile, fileMode)) using (FileStream fs = zFile.Open(zipFile, fileMode)) using (ZipArchive zipArchive = new ZipArchive(fs, ZipArchiveMode.Update)) { //Trace.WriteLine("CompressionLevel.Fastest"); zipArchive.CompressionLevel = CompressionLevel.Fastest; zipArchive.Zip(files); } }
// use ZipArchive from System.IO.Compression //public override string[] Uncompress(string file, string directory, IEnumerable<string> selectedFiles = null, UncompressBaseOptions options = UncompressBaseOptions.None) //{ // bool extractFullPath = (options & UncompressBaseOptions.ExtractFullPath) == UncompressBaseOptions.ExtractFullPath; // bool overrideExistingFile = (options & UncompressBaseOptions.OverrideExistingFile) == UncompressBaseOptions.OverrideExistingFile; // bool renameExistingFile = (options & UncompressBaseOptions.RenameExistingFile) == UncompressBaseOptions.RenameExistingFile; // List<string> files = new List<string>(); // Dictionary<string, string> dicCompressedFiles = null; // if (selectedFiles != null) // { // dicCompressedFiles = new Dictionary<string, string>(); // foreach (string compressedFile in selectedFiles) // dicCompressedFiles.Add(compressedFile, compressedFile); // } // using (System.IO.Compression.ZipArchive archive = ZipFile.OpenRead(file)) // { // foreach (ZipArchiveEntry entry in archive.Entries) // { // if (dicCompressedFiles != null && !dicCompressedFiles.ContainsKey(entry.FullName)) // continue; // string path = zPath.Combine(directory, entry.FullName); // zfile.CreateFileDirectory(path); // entry.ExtractToFile(path); // files.Add(path); // } // } // return files.ToArray(); //} public override void Compress(string compressFile, IEnumerable <CompressFile> files, FileMode fileMode = FileMode.Create) { ZipArchive.Zip(compressFile, files, fileMode); }
public static void Zip(string zipFile, IEnumerable<CompressFile> files, FileMode fileMode = FileMode.Create) { using (FileStream fs = new FileStream(zipFile, fileMode)) using (ZipArchive zipArchive = new ZipArchive(fs, ZipArchiveMode.Update)) { //Trace.WriteLine("CompressionLevel.Fastest"); zipArchive.CompressionLevel = CompressionLevel.Fastest; zipArchive.Zip(files); } }