本文所述为一个C#使用iCSharpcode压缩的使用类,经测试效果不错。分享给大家供大家参考之用。具体方法如下:
1.参数类
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ZipCompress { public class ZipParameter { private string zip_Name = ""; private string zip_DirectoryName = ""; private List<string> zip_FileList = new List<string>(); /// <summary> /// 压缩后的文件名称 /// </summary> public string ZIPName { get { return zip_Name; } set { zip_Name = value; } } /// <summary> /// 压缩的文件路径 /// </summary> public string ZIPDirectoryName { get { return zip_DirectoryName; } set { zip_DirectoryName = value; } } /// <summary> /// 压缩的文件列表 /// </summary> public List<string> ZIPFileList { get { return zip_FileList; } set { zip_FileList = value; } } } }
2.工作类
//**************************************************************************************** //功能:实现文件压缩 //使用方法:设置参数进行压缩 //***************************************************************************************** using System; using ICSharpCode.SharpZipLib.Zip; using System.IO; using System.Text; namespace ZipCompress { public class CompressFile { /// <summary> /// 压缩文件参数 /// </summary> public ZipParameter ZipParameter { get; set; } /// <summary> /// 压缩文件返回压缩后的信息 /// </summary> /// <returns>string 返回压缩后的提示信息</returns> public string CompressReturnMsg() { FileStream Zip_File; ZipOutputStream ZipStream; ZipEntry ZipEntry; string rtnMessage = "";//返回的信息 try { //循环文件,如果文件不存在就不添加的压缩里面 for (int i = 0; i < ZipParameter.ZIPFileList.Count; i++) { if (!File.Exists(ZipParameter.ZIPFileList[i])) { ZipParameter.ZIPFileList.RemoveAt(i); i--; } } //没有有文件下面的压缩不执行 if (ZipParameter.ZIPFileList.Count == 0) { return " file not find"; } //没有目录进行创建 if (!Directory.Exists(ZipParameter.ZIPDirectoryName)) { Directory.CreateDirectory(ZipParameter.ZIPDirectoryName); } // 解决文档名称乱码问题,出现乱码就是因为CodePage不对 Encoding gbk = Encoding.GetEncoding("gbk"); ICSharpCode.SharpZipLib.Zip.ZipConstants.DefaultCodePage = gbk.CodePage; //文件路径,文档路径与文件名称 string strPath = ZipParameter.ZIPDirectoryName + ZipParameter.ZIPName; Zip_File = File.Create(strPath); ZipStream = new ZipOutputStream(Zip_File); foreach (string FileToZip in ZipParameter.ZIPFileList) { Zip_File = File.OpenRead(FileToZip); byte[] buffer = new byte[Zip_File.Length]; Zip_File.Read(buffer, 0, buffer.Length); Zip_File.Close(); ZipEntry = new ZipEntry(Path.GetFileName(FileToZip)); ZipStream.PutNextEntry(ZipEntry); ZipStream.Write(buffer, 0, buffer.Length); } ZipStream.Finish(); ZipStream.Close(); Zip_File.Close(); rtnMessage = "success"; } catch (Exception ex) { rtnMessage = "fail:" + ex.Message; } finally { GC.Collect(); GC.Collect(1); } return rtnMessage; } } }
3.使用类
ZipParameter zp = new ZipParameter(); zp.ZIPDirectoryName = @"C:\Users\Public\Pictures\Sample Pictures\"; zp.ZIPName = "Test.zip"; zp.ZIPFileList.Add(@"C:\Users\Public\Pictures\Sample Pictures\Chrysanthemum.jpg"); zp.ZIPFileList.Add(@"C:\Users\Public\Pictures\Sample Pictures\Desert.jpg"); zp.ZIPFileList.Add(@"C:\Users\Public\Pictures\Sample Pictures\错误文件.jpg"); CompressFile cprFile = new CompressFile(); cprFile.ZipParameter = zp; string strMessage = cprFile.CompressReturnMsg();
4.文件源码点此本站下载
希望本文所述对大家的C#程序设计有所帮助。
本文向大家介绍C#文件流进行压缩和解压缩的方法,包括了C#文件流进行压缩和解压缩的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#文件流进行压缩和解压缩的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的C#程序设计有所帮助。
本文向大家介绍C#使用WinRar命令进行压缩和解压缩操作的实现方法,包括了C#使用WinRar命令进行压缩和解压缩操作的实现方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#使用WinRar命令进行压缩和解压缩操作的实现方法。分享给大家供大家参考,具体如下: 更多关于C#相关内容感兴趣的读者可查看本站专题:《C#常见控件用法教程》、《WinForm控件用法总结》、《C#数据结构与算
本文向大家介绍asp.net C#实现解压缩文件的方法,包括了asp.net C#实现解压缩文件的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了asp.net C#实现解压缩文件的方法。一共给大家介绍了三段代码,一个是简单的解压缩单个zip文件,后一个可以解压批量的大量的但需要调用ICSharpCode.SharpZipLib.dll类了,最后一个比较实例可压缩也可以解压缩了分享给大
本文向大家介绍C#实现的文件压缩和解压缩类,包括了C#实现的文件压缩和解压缩类的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#实现的文件压缩和解压缩类。分享给大家供大家参考。具体分析如下: 这个C#代码包含了几个类,封装了文件压缩和解压缩常用的方法,包括直接通过代码进行压缩,也有调用winrar对文件进行压缩的 希望本文所述对大家的C#程序设计有所帮助。
本文向大家介绍C#中使用WinRAR实现加密压缩及解压缩文件,包括了C#中使用WinRAR实现加密压缩及解压缩文件的使用技巧和注意事项,需要的朋友参考一下 本次示例主要实现: 1.压缩文件夹及其下文件 2.压缩文件夹下文件 3.压缩文件夹及其下文件为rar 还是 zip 4.解压缩 5.加密压缩及解加密压缩 ----------- 示例代码如下: # re: C# (加密)压缩及解压缩 相关文件夹
本文向大家介绍PHP 实现文件压缩解压操作的方法,包括了PHP 实现文件压缩解压操作的方法的使用技巧和注意事项,需要的朋友参考一下 在php中,有时我们需要使用到压缩文件操作,压缩文件可以节省磁盘空间;且压缩文件更小,便于网络传输,效率高,下面我们就来了解php的压缩解压相关操作 在PHP中有一个ZipArchive类,专门用于文件的压缩解压相关操作 在ZipArchive类中主要使用到了如下方法