C# 压缩文件 ICSharpCode.SharpZipLib.dll
2017-04-21 10:26
645 查看
效果:
代码只能压缩文件夹里面的文件,不能压缩文件夹。
压缩前:
压缩后:
代码:
需要引用ICSharpCode.SharpZipLib.dll
代码只能压缩文件夹里面的文件,不能压缩文件夹。
压缩前:
压缩后:
代码:
需要引用ICSharpCode.SharpZipLib.dll
public ActionResult Index() { //路径 string path = "E:/test/xls_Z"; //调用 CreateZip(path ,path + ".zip"); } /// <summary> /// 压缩文件 /// </summary> /// <param name="sourceFilePath">文件路径</param> /// <param name="destinationZipFilePath">压缩后的地址</param> public static void CreateZip(string sourceFilePath, string destinationZipFilePath) { if (sourceFilePath[sourceFilePath.Length - 1] != System.IO.Path.DirectorySeparatorChar) sourceFilePath += System.IO.Path.DirectorySeparatorChar; ZipOutputStream zipStream = new ZipOutputStream(System.IO.File.Create(destinationZipFilePath)); zipStream.SetLevel(6); // 压缩级别 0-9 CreateZipFiles(sourceFilePath, zipStream); zipStream.Finish(); zipStream.Close(); } /// <summary> /// 递归压缩文件 /// </summary> /// <param name="sourceFilePath">待压缩的文件或文件夹路径</param> /// <param name="zipStream">打包结果的zip文件路径(类似 D:\WorkSpace\a.zip),全路径包括文件名和.zip扩展名 /// <param name="staticFile"></param> private static void CreateZipFiles(string sourceFilePath, ZipOutputStream zipStream) { Crc32 crc = new Crc32(); string[] filesArray = Directory.GetFileSystemEntries(sourceFilePath); foreach (string file in filesArray) { //如果当前是文件夹,递归 if (Directory.Exists(file)) { CreateZipFiles(file, zipStream); } //如果是文件,开始压缩 else { FileStream fileStream = System.IO.File.OpenRead(file); byte[] buffer = new byte[fileStream.Length]; fileStream.Read(buffer, 0, buffer.Length); string tempFile = file.Substring(sourceFilePath.LastIndexOf("\\") + 1); ZipEntry entry = new ZipEntry(tempFile); entry.DateTime = DateTime.Now; entry.Size = fileStream.Length; fileStream.Close(); crc.Reset(); crc.Update(buffer); entry.Crc = crc.Value; zipStream.PutNextEntry(entry); zipStream.Write(buffer, 0, buffer.Length); } } }
相关文章推荐
- C# ICSharpCode.SharpZipLib.dll文件压缩和解压功能类整理,上传文件或下载文件很常用
- C#/ASP.NET/WinForm 通过ICSharpCode.SharpZipLib.dll实现文件夹、文件的压缩与解压
- 使用 ICSharpCode.SharpZipLib.dll 压缩文件 方法实例
- ICSharpCode.SharpZipLib.dll 压缩多文件
- ASP.NET生成压缩文件(rar打包)ICSharpCode.SharpZipLib.dll
- 压缩解压目录和文件--ICSharpCode.SharpZipLib.dll 算法 (转)
- 基于(ICSharpCode.SharpZipLib.dll)的文件压缩方法,类文件
- C#+ICSharpCode.SharpZipLib.dll实现压缩解压缩功能
- C#文件压缩:ICSharpCode.SharpZipLib生成zip、tar、tar.gz
- c# ICSharpCode.SharpZipLib压缩文件时附带空文件夹
- (转载)C#利用ICSharpCode.SharpZipLib.dll压缩文件和解压文件
- ICSharpCode.SharpZipLib.dll实现压缩解压一个树形目录
- zip (ICSharpCode.SharpZipLib.dll文件需要下载)
- (转载)C#利用ICSharpCode.SharpZipLib.dll压缩文件和解压文件
- 网络传输压缩DLL: ICSharpCode.SharpZipLib
- C#使用ICSharpCode.SharpZipLib.dll进行文件的压缩与解压功能
- C#使用ICSharpCode.SharpZipLib.dll压缩多个文件
- C# 下利用ICSharpCode.SharpZipLib.dll实现文件/文件夹压缩、解压缩
- C# 利用ICSharpCode.SharpZipLib.dll 实现压缩和解压缩文件
- ICSharpCode.SharpZipLib.dll实现压缩解压一个树形目录