asp.net中调用winrar实现压缩解压缩的代码_实用技巧

asp.net压缩文件夹调用示例:rar("e:/www.jb51.net/", "e:/www.jb51.net.rar");
asp.net解压缩rar文件调用示例:unrar("e:/www.jb51.net.rar", "e:/");

复制代码 代码如下:

using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;

namespace BLL
{
public class CmdUtil
{
///
/// 执行cmd.exe命令
///
///命令文本
/// 命令输出文本
public static string ExeCommand(string commandText)
{
return ExeCommand(new string[] { commandText });
}
///
/// 执行多条cmd.exe命令
///
///命令文本数组
/// 命令输出文本
public static string ExeCommand(string[] commandTexts)
{
Process p = new Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = true;
string strOutput = null;
try
{
p.Start();
foreach (string item in commandTexts)
{
p.StandardInput.WriteLine(item);
}
p.StandardInput.WriteLine("exit");
strOutput = p.StandardOutput.ReadToEnd();
//strOutput = Encoding.UTF8.GetString(Encoding.Default.GetBytes(strOutput));
p.WaitForExit();
p.Close();
}
catch (Exception e)
{
strOutput = e.Message;
}
return strOutput;
}
///
/// 启动外部Windows应用程序,隐藏程序界面
///
///应用程序路径名称
/// true表示成功,false表示失败
public static bool StartApp(string appName)
{
return StartApp(appName, ProcessWindowStyle.Hidden);
}
///
/// 启动外部应用程序
///
///应用程序路径名称
///进程窗口模式
/// true表示成功,false表示失败
public static bool StartApp(string appName, ProcessWindowStyle style)
{
return StartApp(appName, null, style);
}
///
/// 启动外部应用程序,隐藏程序界面
///
///应用程序路径名称
///启动参数
/// true表示成功,false表示失败
public static bool StartApp(string appName, string arguments)
{
return StartApp(appName, arguments, ProcessWindowStyle.Hidden);
}
///
/// 启动外部应用程序
///
///应用程序路径名称
///启动参数
///进程窗口模式
/// true表示成功,false表示失败
public static bool StartApp(string appName, string arguments, ProcessWindowStyle style)
{
bool blnRst = false;
Process p = new Process();
p.StartInfo.FileName = appName;//exe,bat and so on
p.StartInfo.WindowStyle = style;
p.StartInfo.Arguments = arguments;
try
{
p.Start();
p.WaitForExit();
p.Close();
blnRst = true;
}
catch
{
}
return blnRst;
}

public static void Rar(string s, string d)
{
ExeCommand(System.Web.HttpContext.Current.Server.MapPath("~/rar.exe") + " a \"" + d + "\" \"" + s + "\" -ep1");
}

public static void UnRar(string s, string d)
{
ExeCommand(System.Web.HttpContext.Current.Server.MapPath("~/rar.exe") + " x \"" + s + "\" \"" + d + "\" -o+");
}

}
}

时间: 2024-08-03 17:04:10

asp.net中调用winrar实现压缩解压缩的代码_实用技巧的相关文章

asp.net中利用ashx实现图片防盗链代码_实用技巧

GET /Img.ashx?img=svn_work.gif HTTP/1.1 Accept: */* Referer: http://www.svnhost.cn/ Accept-Language: zh-cn UA-CPU: x86 Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727

asp.net中生成缩略图并添加版权实例代码_实用技巧

复制代码 代码如下: //定义image类的对象Drawing.Image image,newimage;//图片路径protected string imagePath;//图片类型protected string imageType;//图片名称protected string imageName;//提供一个回调方法,用于确定Image对象在执行生成缩略图操作时何时提前取消执行//如果此方法确定 GetThumbnailImage 方法应提前停止执行,则返回 true:否则返回 false

ASP.NET中下载文件的几种实例代码_实用技巧

复制代码 代码如下:   //TransmitFile实现下载     protected void Button1_Click(object sender, EventArgs e)    {        /*         微软为Response对象提供了一个新的方法TransmitFile来解决使用Response.BinaryWrite         下载超过400mb的文件时导致Aspnet_wp.exe进程回收而无法成功下载的问题.         代码如下:        

asp.net自定义控件回发数据实现方案与代码_实用技巧

在实现asp.net的自定义控件中,若要实现数据的回发或者post数据,那自义控件必须实现IPostBackDataHandler接口, 在该接口中有两个方法一个是LoadPostData,另一个是RaisePostDataChangedEvent.第一个方法用于在回发数据时,填充自定义控件的相关属性,第二个方法用于激发控件相关的事件.也就是说这两个方法,应该是在提交数据的时候进行调用的. 可是,我们在实现自己的控件时,虽然继承了 IPostBackDataHandler,但是在提交数据的时候确

asp.net中C#实现手动回收内存的方法_实用技巧

C#有自动回收内存的机制,但是有时自动回收有一定滞后,需要在变量使用后迅速回收,节约内存,这里介绍一个最简单的方法. 1.先对对象赋值 null; 2.使用System.GC.Collect() 复制代码 代码如下: class Program {          static void Main(string[] args)          {              long lenth = 1024 * 1024 * 128;                GetCost("程序启动

ASP.NET中水晶报表的使用方法详解_实用技巧

前一段时间,由于在项目中要用到报表做统计,所以我学习了一下ASP.NET水晶报表的使用.水晶报表的执行模式(也就是取数据的方法)可以分为两种: 第一种是Pull模式:被请求时,水晶报表直接根据指定的驱动连接数据库然后组装这些数据. 另外一种就是Push模式:此时开发者不得不自己编写代码连接数据并组装DataSet,同时将它传送至报表.在些这种情况下,通过使用连接共享以及限制记录集合的大小,可以使用报表性能最大化. 水晶报表中的报表类型也分为两种: --StrongTyped 报表: 当你将报表文

ASP.NET中常用输出JS脚本的类实例_实用技巧

本文实例讲述了ASP.NET中常用输出JS脚本的类,针对过去输出js脚本的类进行了一定的改进.在项目开发中非常具有实用价值.分享给大家供大家参考.具体如下: 很多时候在ASP.NET中我们经常需要输出一些JS脚本,比如弹出一个警告窗口,返回到历史页面等JS功能,我看到网上流传得比较广的是马先光写的一个JScript类,这个类基本将经常用到的JS脚本包含了,非常方便,唯一的不足是作者采用的Response.Write(string msg)的办法,这样造成输出的js脚本在<html></h

asp.net中的check与uncheck关键字用法解析_实用技巧

本文实例讲述了asp.net中的check与uncheck关键字用法.分享给大家供大家参考.具体分析如下: checked和unchecked是两个不常用的关键字,但是确是非常有用的关键字,对此,建议测试时开启全局checked编译器选项. 1. 一段编译没经由过程的代码 复制代码 代码如下: int a = int.MaxValue * 2; 以上代码段编译没有经由过程,在VS2010中会有一条红色的波浪线指出这段代码有题目:"The operation overflows at compil

ASP.net中实现基于UrlRewrite的防盗链功能_实用技巧

在ASP.net中最快实现UrlRewrite的方法这篇文章中说了如何做UrlRewrite,那只是一个最简单的应用 其实利用UrlRewrite与IIS的设置我们可以实现简单而有效的防盗链功能. 假设你的站点有一个文件:web.rar,你希望只有具有某些特定域名的来源地址或是已经登陆的用户才能访问,这时就得用到防盗链功能,在ASP时代,我们需要借助第三方组件来完成这个效果,但是在ASP.net中我们可直接利用Context.RewritePath来实现了. 下载配置文件: 复制代码 代码如下: