using System; using System.Collections.Generic; using System.IO; using ICSharpCode.SharpZipLib.Checksums; using ICSharpCode.SharpZipLib.Zip; namespace SharpZipLib压缩 { /// <summary> /// 压缩和解压文件 /// </summary> public class ZipClass { /// <summary> /// 所有文件缓存 /// </summary> List<string> files = new List<string>(); /// <summary> /// 所有空目录缓存 /// </summary> List<string> paths = new List<string>(); /// <summary> /// 压缩单个文件 /// </summary> /// <param name="fileToZip">要压缩的文件</param> /// <param name="zipedFile">压缩后的文件全名</param> /// <param name="compressionLevel">压缩程度,范围0-9,数值越大,压缩程序越高</param> /// <param name="blockSize">分块大小</param> public void ZipFile(string fileToZip, string zipedFile, int compressionLevel, int blockSize) { if (!System.IO.File.Exists(fileToZip))//如果文件没有找到,则报错 { throw new FileNotFoundException("The specified file " + fileToZip + " could not be found. Zipping aborderd"); } FileStream streamToZip = new FileStream(fileToZip, FileMode.Open, FileAccess.Read); FileStream zipFile = File.Create(zipedFile); ZipOutputStream zipStream = new ZipOutputStream(zipFile); ZipEntry zipEntry = new ZipEntry(fileToZip); zipStream.PutNextEntry(zipEntry); zipStream.SetLevel(compr