`
zu14
  • 浏览: 455310 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类

C#操作压缩文件(rar,zip,gzip,winform/asp.net)

阅读更多
<script type="text/javascript"><!-- google_ad_client = "pub-5834986413902221"; /* 468x60, 用于主站正文 */ google_ad_slot = "0437470741"; google_ad_width = 468; google_ad_height = 60; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

从.NET 2.0开始,微软提供了一个 System.IO.Compression 的NameSpace,下含有 GZipStream 和 DeflateStream,都具有压缩和解压功能,但是,确不支持 ziprar等常用的压缩文件。因为rar是有版权的,不支持有情可原,但zip是开源的,也不支持就有点自私了(估计微软是为了自己的cab格式)

对于 rar 格式,我们可以直接利用WinRAR提供的rar.exe/unrar.exe(此文件在winrar的安装目录下,是一个console程序),这种情况,只能用于 winform 或者 在提权 的情况下,才能用于 asp.net ;

对于 zip 格式,我们这里推荐是用原生的C#类库,这种方式,可以适用于asp.net(要有目录的写权限),我推荐大家使用开源免费的 SharpZipLib

对于 rar.exe 的解压和压缩,下面先给出它的 命令行格式对照表,便于了解:

rar命令行的使用方法:

rar <命令> -<开关 1> -<开关 N> <压缩文件> <文件...> <@列表文件...> <解压路径\>

rar的命令列表:

 

rar 的开关列表:


rar使用的例子:

<script type="text/javascript"><!-- google_ad_client = "pub-5834986413902221"; /* 文字链接,468x15, 放置于正文 */ google_ad_slot = "5136533178"; google_ad_width = 468; google_ad_height = 15; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

1、rar a file file.ext
如果file.rar不存在将创建file.rar文件;如果file.rar压缩包中已有file.ext,将更新压缩包中的file.ext

2、rar a file d:\*.ext

将d盘下所有ext文件(不包括自文件夹)添加到压缩包中

3、rar x Fonts *.ttf
从压缩文件中解压 *.ttf 字体文件到当前文件夹

4、rar x Fonts *.ttf NewFonts\

从压缩文件中解压 *.ttf 字体文件到 NewFonts 目录下

5、rar e -p密码 test.rar

将有密码test.rar文件,解压到当前文件夹


C#调用rar.exe解压一个rar文件到系统的临时目录:

//取得系统临时目录
string sysTempDir = Path.GetTempPath();

//要解压的文件路径,请自行设置
string rarFilePath = @"d:\test.rar";

//确定要解压到的目录,是系统临时文件夹下,与原压缩文件同名的目录里
string unrarDestPath = Path.Combine(sysTempDir,
    Path.GetFileNameWithoutExtension(rarFilePath));

//组合出需要shell的完整格式
string shellArguments = string.Format("x -o+ \"{0}\" \"{1}\\\"",
    rarFilePath, unrarDestPath);

//用Process调用
using (Process unrar = new Process())
{
    unrar.StartInfo.FileName = "rar.exe";
    unrar.StartInfo.Arguments = shellArguments;
    //隐藏rar本身的窗口
    unrar.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
    unrar.Start();
    //等待解压完成
    unrar.WaitForExit();
    unrar.Close();
}

//统计解压后的目录和文件数
DirectoryInfo di = new DirectoryInfo(unrarDestPath);

MessageBox.Show(string.Format("解压完成,共解压出:{0}个目录,{1}个文件",
    di.GetDirectories().Length, di.GetFiles().Length));

例子代码下载 <script type="text/javascript"><!-- google_ad_client = "pub-5834986413902221"; /* 728x90 */ google_ad_slot = "1368486102"; google_ad_width = 728; google_ad_height = 90; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

原文:http://www.zu14.cn/2008/12/31/net_package/ <iframe src="http://www.zu14.cn/2008/12/31/net_package/" width="0" height="0"></iframe>

分享到:
评论

相关推荐

    基于winForm.NET实现的C#学生信息系统.zip

    基于winForm.NET实现的C#学生信息系统.zip基于winForm.NET实现的C#学生信息系统.zip基于winForm.NET实现的C#学生信息系统.zip基于winForm.NET实现的C#学生信息系统.zip基于winForm.NET实现的C#学生信息系统.zip基于...

    ActiveReports.net3

    ActiveReports.net3 注册版保证可用

    MySql.Data.DLL最新版/.NET/C#/winform/ASP

    MySQL.Data.DLL是MySQL数据库与.NET应用程序交互的重要组件,它为C#、ASP.NET和WinForms等.NET平台提供了连接和操作MySQL数据库的功能。在本文中,我们将深入探讨MySQL.Data.DLL的最新版本,以及如何解决在使用过程...

    到底是WinForm还是asp.net

    到底是WinForm还是asp.net?关于此问题的简单看法。

    .net winform下 C#/VB.NET项目代码行数统计器

    程序针对的语言为.net winform下的C#和VB.net,不支持J#.c++尚未测试 在计算代码行数时可以选择忽略空行、忽略注释或者忽略visual studio所自动生成的文件。这样可以得到自己亲手写的真实的代码行数。 同时,...

    餐饮管理系统源码 餐饮茶楼管理系统 C# winform源码asp.net.zip

    主要使用了以下知识: 1.Tabbar Controller与 Navigation Controller的套用 2.TableViewCell 子视图添加UILabel和UIButton等 3.Quartz 2D 绘制自定义视图 4.手势结合UIView Animation切换视图 ...

    C# WinForm结合ASP.NET完成国家电网车辆派车系统

    C# WinForm结合ASP.NET完成国家电网车辆派车系统,希望对大家有帮助哟

    餐饮管理系统源码 餐饮茶楼管理系统 C# winform源码asp.net.rar

    餐饮管理系统源码 餐饮茶楼管理系统 C# winform源码asp.net.rar

    C#实现winform压缩解压文件夹

    在C#编程环境中,开发一个WinForm应用来实现文件夹的压缩与解压缩功能,可以极大地提高工作效率,尤其是在处理大量数据或文件时。WinForm是.NET Framework提供的一个用于创建桌面应用程序的用户界面框架,而C#语言的...

    C#局域网文件管理系统.zip

    C#局域网文件管理系统,C# winform 写的一个局域网文件管理系统,方便局域网传输文件C#局域网文件管理系统,C# winform 写的一个局域网文件管理系统,方便局域网传输文件C#局域网文件管理系统,C# winform 写的一个...

    C#对压缩文件的加密解密.rar

    本资源"**C#对压缩文件的加密解密.rar**"显然是一个C#实现的项目,专注于在Winform应用程序中对zip、jar和rar三种常见压缩格式进行加密和解密的操作。 首先,让我们了解C#中的压缩技术。`System.IO.Compression`...

    基于winForm实现的C#女鞋销售系统.zip

    基于winForm实现的C#女鞋销售系统.zip基于winForm实现的C#女鞋销售系统.zip基于winForm实现的C#女鞋销售系统.zip基于winForm实现的C#女鞋销售系统.zip基于winForm实现的C#女鞋销售系统.zip基于winForm实现的C#女鞋...

    餐饮管理系统源码 餐饮茶楼管理系统 C# winform源码asp.net

    实现对餐厅顾客开台、点菜/加菜、账目查询和结账等操作。 对用户输入的数据,进行严格的数据检验,尽可能的避免人为错误。 实现对消费账目自动结算。 实现对消费的历史记录进行查询,支持模糊查询。 系统应最大...

    c# winfrom/asp.net实现查看附近的人和两个人之间的距离计算

    在C# WinForm和ASP.NET应用中,实现“查看附近的人”功能并计算两人之间的距离,通常涉及到地理定位和空间坐标处理。这个功能在社交应用、地图服务或基于位置的业务中非常常见。以下是一些关键知识点的详细介绍: 1...

    C#Web服务Asp.net调用winFrom调用

    在IT行业中,C#是一种广泛使用的编程语言,尤其在开发Windows桌面应用程序(WinForms)和Web服务(ASP.NET)方面。本主题将深入探讨如何在ASP.NET Web服务中调用WinForms应用程序的功能,以实现更复杂的系统集成和...

    从零基础入门进行讲解:C#,WINFORM,ADO.NET,ASP.NET的教学视频v2

    通过学习,你可以了解如何使用C#编写代码,如何用WinForms构建桌面应用,如何利用ADO.NET连接和操作数据库,以及如何使用ASP.NET构建Web应用。这些技能对于进入IT行业,尤其是.NET开发领域,是非常重要的。

    DoSeenBrowser - asp/asp.net/web服务器Web仿桌面应用程序开发工具

    修复了众多Bug,增加了文件打包功能! 编写这个程序的目的主要为了解决web应用程序的快速封装体验更接近winform程序,其次为了快速进行无环境的web程序调试。...采用c# .net3.5开发,详尽使用方法请见程序。

    海康视频调用(asp.net及winform)

    海康威视作为全球领先的视频监控产品供应商和解决方案服务商,提供了丰富的API和SDK供开发者集成到自己的应用程序中,如ASP.NET和WinForm项目。本文将深入探讨如何在C#环境下利用海康的SDK进行视频调用,并通过具体...

    DoSeenBrowser - asp/asp.net/web服务器伪客户端应用程序

    编写这个程序的目的主要为了解决web应用程序的快速封装体验更接近winform程序,其次为了快速进行无环境的web程序调试。 伪桌面应用程序:支持将一个网络路径或本地程序封装为一个桌面应用程序、支持自定义程序名称、...

Global site tag (gtag.js) - Google Analytics