当前位置:  编程技术>.net/c#/asp.net

C# 实现文件的压缩与解压缩的代码

    来源: 互联网  发布时间:2014-08-30

    本文导语:  说明: 引用 using ICSharpCode.SharpZipLib.Zip; 代码如下:   代码示例: //调用:CreateZipFile("文件路径","压缩路径") private static void CreateZipFile(string filesPath, string zipFilePath) { if (!Directory.Exists(filesPath)) { MessageBox.Show("找不到 " + filesP...

说明:
引用 using ICSharpCode.SharpZipLib.Zip;

代码如下:
 

代码示例:

//调用:CreateZipFile("文件路径","压缩路径")
private static void CreateZipFile(string filesPath, string zipFilePath)
{
if (!Directory.Exists(filesPath))
{
MessageBox.Show("找不到 " + filesPath);
return;
}
try
{
string[] filenames = Directory.GetFiles(filesPath);
using (ZipOutputStream s = new ZipOutputStream(File.Create(zipFilePath)))
{
s.SetLevel(9); // 压缩级别 0-9
//s.Password = "123"; //Zip压缩文件密码
byte[] buffer = new byte[4096]; //缓冲区大小
foreach (string file in filenames)
{
ZipEntry entry = new ZipEntry(Path.GetFileName(file));
entry.DateTime = DateTime.Now;
s.PutNextEntry(entry);
using (FileStream fs = File.OpenRead(file))
{
int sourceBytes;
do
{
sourceBytes = fs.Read(buffer, 0, buffer.Length);
s.Write(buffer, 0, sourceBytes);
} while (sourceBytes > 0);
}
}
s.Finish();
s.Close();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
}
}

//UnZipFile("压缩路径","文件路径")
private static void UnZipFile(string zipFilePath, string unZipFilePath)
{
if (!File.Exists(zipFilePath))
{
MessageBox.Show(zipFilePath + " 不存在!");
return;
}

using (ZipInputStream s = new ZipInputStream(File.OpenRead(zipFilePath)))
{
ZipEntry theEntry;
string directoryName = Path.GetDirectoryName(unZipFilePath);
// create directory
if (directoryName.Length > 0)
{
Directory.CreateDirectory(directoryName);
}

while ((theEntry = s.GetNextEntry()) != null)
{
//string fileName = Path.GetFileName(theEntry.Name);
string fileName = Path.Combine(unZipFilePath,theEntry.Name);

if (fileName != String.Empty)
{
using (FileStream streamWriter = File.Create(fileName))
{

int size = 2048;
byte[] data = new byte[2048];
while (true)
{
size = s.Read(data, 0, data.Length);
if (size > 0)
{
streamWriter.Write(data, 0, size);
}
else
{
break;
}
}

streamWriter.Close();
}
}
}

s.Close();
}
}

附,使用ICSharpCode SharpZipLib进行压缩与解压缩文件或文件夹的代码。

1、解压缩代码
 

代码示例:

using System;
using System.Collections.Generic;
using System.Text;
using ICSharpCode.SharpZipLib.Zip;
using System.IO;

namespace DRMEncryption
{
/// ;summary;
/// UnZip 类用于解压缩一个 zip 文件。
/// ;/summary;
public class UnZipDir
{

//解压缩以后的文件名和路径,压缩前的路径
public static Boolean UNZipFile(string FileToZip, string ZipedFile)
{
try
{
FastZip fastZip = new FastZip();
fastZip.ExtractZip(FileToZip, ZipedFile, "");
return true;
}
catch {
return false;
}
}
}
}

2、压缩文件的代码
 

代码示例:

using System;
using System.IO;
using ICSharpCode.SharpZipLib.Checksums;
using ICSharpCode.SharpZipLib.Zip;
using ICSharpCode.SharpZipLib.GZip;
namespace DRMEncryption
{
public class ZipClass
{

public static Boolean ZipFile(string FileToZip, string ZipedFile)
{
try
{
FastZip fastZip = new FastZip();

bool recurse = true;

//压缩后的文件名,压缩目录 ,是否递归
fastZip.CreateZip(FileToZip, ZipedFile, recurse, "");
return true;
}
catch { return false; }
}
}
}
 

说明:
那个返回方法是用来另外一个页面判断解压是否成功用的,可以不要;
解压缩:UnZipDir.UNZipFile(文件名, 路径);
压缩:ZipClass.ZipFile(文件名, 路径);

就是这些了,希望有需要的朋友,可以从中受益,呵呵。


    
 
 

您可能感兴趣的文章:

  • 想在linux下用C实现gzip压缩与解压缩,有没有相关库函数可以调用?
  • linux下,压缩ZIP文件,用命令怎么实现分包压缩啊?或者不能实现?
  • C#实现GZip压缩和解压缩入门实例
  • 如何用程序实现图片压缩
  • Java实现的压缩包 jazzlib
  • 文本压缩算法C++实现 Golden Huffman
  • 高分求:LINUX下视频压缩编解码算法实现
  • php 压缩多个CSS文件的实现代码
  • 有没有函数实现压缩算法?
  • ASP.NET实现压缩和解压缩的代码
  • php实现批量压缩图片文件大小的脚本
  • C语言字符串原地压缩实现方法
  • php实现zip压缩文件解压缩代码分享(简单易懂)
  • .net压缩功能实现方法
  • C#实现压缩HTML代码的方法
  • oracle定时备份压缩的实现步骤
  • 我想在unix下实现一个定期自动压缩文件的shell,请高手指点一下
  • C#使用晚绑定来实现压缩Access数据库的方法
  • Java 文件解压缩实现代码
  • 怎样用java快速实现zip文件的压缩解压缩?(给分20!)
  • c#通过委托delegate与Dictionary实现action选择器代码举例
  • C#实现获取枚举中元素个数的方法
  • C#实现自定义双击事件
  • C#键盘输入回车键实现点击按钮效果的方法
  • C#实现获取一年中是第几个星期的方法
  • C#实现Datatable排序的方法
  • C#实现装箱与拆箱操作简单实例
  • 解决C#中WebBrowser的DocumentCompleted事件不执行的实现方法
  • C#下实现创建和删除目录的实例代码
  • 使用C#实现在屏幕上画图效果的代码实例
  • C#实现过滤html标签并保留a标签的方法
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Python GUI编程:tkinter实现一个窗口并居中代码
  • 用正则实现提取代码内容的代码
  • 通过javascript库JQuery实现页面跳转功能代码
  • 请问高手:Ctrl+Alt+F1~F8可以切换虚拟终端,这个代码是在哪儿实现的?我搞不懂,最好指点源代码大概位置。
  • c语言判断某一年是否为闰年的各种实现程序代码
  • c++ 连接两个字符串实现代码 实现类似strcat功能
  • php实现socket实现客户端和服务端数据通信源代码
  • servlet中怎么实现java代码和html代码的分离????
  • C#/.NET字符串加密和解密实现(AES和RSA代码举例)
  • 如何用代码手工实现激活事件发生
  • Linux下c函数dlopen实现加载动态库so文件代码举例
  • python 实现文件的递归拷贝实现代码
  • Session id实现通过Cookie来传输方法及代码参考
  • 代码实现Radius服务模拟的问题,熟悉Radius服务的大虾请进!
  • JavaScript实现页面跳转的几种方法(参考代码)
  • JQuery实现元素屏幕居中显示的代码
  • java实现判断字符串是否全是数字的四种方法代码举例
  • css创意ul+li实现的细线表格实现代码
  • windows下c/c++读写锁实现原理及代码参考
  • winform下实现win7 Aero磨砂效果实现代码
  • Linux 共享内存介绍及实现代码
  • jQuery 表格隔行换色 鼠标高亮行变色的实现代码
  • 通过javascript实现DIV居中,兼容各浏览器版本
  • socket实现多文件并发传输,求助多线程实现问题?
  • sharepoint 2010 使用STSNavigate函数实现文件下载举例
  • interface 到底有什么用???实现接口,怎么实现??
  • flash AS3反射实现(describeType和getDefinitionByName)
  • 怎么用Jsp实现在页面实现树型结构?
  • boost unordered_map和std::list相结合的实现LRU算法
  • windows 下的PortTunnel 在linux下怎么实现?或者相应的已经实现的软件?端口映射
  • 使用java jdk中的LinkedHashMap实现简单的LRU算法


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3