• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#使用iCSharpcode进行文件压缩实现方法

C#使用iCSharpcode进行文件压缩实现方法

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了icsharpcode,c icsharpcode,icsharpcode.treeview,c#压缩文件,c#压缩文件夹等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文所述为一个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; }
    }
  }
}

</div>

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;
    }
  }
}

</div>

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();

</div>

4.文件源码点此本站下载

希望本文所述对大家的C#程序设计有所帮助。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C#使用iCSharpcode进行文件压缩实现方法

相关文章

  • 2017-05-28使用C#编写15子游戏
  • 2017-05-28webBrowser代理设置c#代码
  • 2017-05-28C#中静态的深入理解
  • 2017-05-28使用代理模式来进行C#设计模式开发的基础教程
  • 2017-05-28C#实现附件上传和下载功能
  • 2017-05-28解析如何正确使用SqlConnection的实现方法
  • 2017-05-28C#查找对象在ArrayList中出现位置的方法
  • 2017-05-28详谈.net中的垃圾回收机制
  • 2017-05-28C# 抓取网页内容的方法
  • 2017-05-28C#通过反射获取当前工程中所有窗体并打开的方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#执行DOS命令的方法
    • C#使用iTextSharp将PDF转成文本的方法
    • C#身份证验证小例子
    • C#验证码识别类完整实例
    • C#连接mysql数据库完整实例
    • C#类的创建与初始化实例解析
    • C#中的正则表达式介绍
    • c#的params参数使用示例
    • C#中查找Dictionary中重复值的方法
    • 关于C#基础知识回顾--反射(三)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有