示例#1
0
 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);
         }
 }
示例#2
0
        // 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);
        }
示例#3
0
 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);
     }
 }