高分求助!!!高手请进!!用vb.net如何在服务器上调用rar.exe压缩文件夹

chenglidexiaoxue 2005-05-16 10:16:53
如何在服务器上调用外部程序对文件夹进行压缩,问题解决,马上结帖!!!
...全文
911 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenglidexiaoxue 2005-05-23
  • 打赏
  • 举报
回复
问题已经解决,谢谢各位朋友的帮助!!
李世东 2005-05-19
  • 打赏
  • 举报
回复
谜语 交通最发达的地方 。答一个国外城市名
答案发到我的消息里 正确者赠送5个QQ币
hchxxzx 2005-05-19
  • 打赏
  • 举报
回复
如果不压缩,怎么才能下载整个文件夹呢?
------------
这好像不太可能.
zeusvenus 2005-05-19
  • 打赏
  • 举报
回复
上网找找有没有现成的操作RAR文件的类库吧!
chenglidexiaoxue 2005-05-19
  • 打赏
  • 举报
回复
如果不压缩,怎么才能下载整个文件夹呢?
wq2000 2005-05-18
  • 打赏
  • 举报
回复
真强,收藏。谢谢各位老大
hchxxzx 2005-05-18
  • 打赏
  • 举报
回复
再就是怀疑asp.net用户是不是能有这么大的权限
-----------------------
我的项目里面就是这样用的.没有问题.
webfactory 2005-05-18
  • 打赏
  • 举报
回复
我首先敬佩各位高手的代码
再就是怀疑asp.net用户是不是能有这么大的权限
chenglidexiaoxue 2005-05-18
  • 打赏
  • 举报
回复
我也是没有办法,我想实现多个文件的下载,曾经想过用线程做,但是乱码问题很多,感觉还是先在服务器上打包压缩下,这样实现起来就可以省略很多问题。
fzxml 2005-05-16
  • 打赏
  • 举报
回复
以前有见过,现在不知在哪里,有空帮你找找。。。。。。。
athossmth 2005-05-16
  • 打赏
  • 举报
回复
不过何必用winrar呢,如果用zip格式,有现成的类库:http://www.icsharpcode.com/OpenSource/SharpZipLib/Default.aspx
athossmth 2005-05-16
  • 打赏
  • 举报
回复
winrar好像安装之后有一个接口还是dos程序……公司机器没有winrar,记不清了
网_风 2005-05-16
  • 打赏
  • 举报
回复
我用c#做的,你参考一下。

commandstr=" a "+filepath+" "+foldpath;
Process.Start("winrar.exe",@commandstr);
chenglidexiaoxue 2005-05-16
  • 打赏
  • 举报
回复
可以通process 类和 ProcessStartInfo 类來实现...
如:
  Dim myProcess As New Process
myProcess.StartInfo.FileName = "rar.exe"
myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Maximized
myProcess.Start()

或 
  System.Diagnostics.Process.Start("CMD.exe", "/c NotePad ")

此段代码能实现调用外部程序么?
chenglidexiaoxue 2005-05-16
  • 打赏
  • 举报
回复
程门立雪ing~~~~~
hchxxzx 2005-05-16
  • 打赏
  • 举报
回复
贴错了

RAR 3.30 版权 (c) 1993-2004 为 Eugene Roshal 所有 22 Jan 2004
共享软件版本 键入 RAR -? 或 RAR /? 或 RAR | MORE 可获得帮助

用法: rar <命令> -<开关 1> -<开关 N> <档案文件> <文件...>
<@列表文件...> <释放路径\>

<命令>
a 添加文件到档案文件中
c 添加档案文件注释
cf 添加文件注释
cw 写入档案文件注释到文件中
d 从档案文件中删除文件
e 释放文件到当前目录
f 刷新档案文件内的文件
i[par]=<str> 在档案文件内查找字符串
k 锁定档案文件
l[t,b] 列表档案文件 [技术支持信息, 梗概信息]
m[f] 移动到档案文件 [仅文件]
p 打印文件到标准输出设备
r 修复档案文件
rc 重建丢失的卷
rn 重命名已归档的文件
rr[N] 添加数据恢复记录
rv[N] 创建恢复卷
s[名称|-] 转换档案文件为自释放格式
t 测试档案文件
u 更新档案文件内的文件
v[t,b] 列表档案文件详细资料 [技术支持信息, 梗概信息]
x 以完整路径释放文件

<开关>
- 停止开关扫描
ac 压缩或释放后清除「存档」属性
ad 追加档案文件名到目标路径
ag[格式] 使用当前日期做为档案文件名
ao 添加带有「存档」属性的文件
ap<路径> 设置档案文件内部路径
as 同步档案文件内容
av 设置用户身份校验 (仅用于注册版)
av- 禁止用户身份校验检查
c- 禁止注释显示
cfg- 禁止读取配置
cl 转换名字为小写字母
cu 转换名字为大写字母
df 归档后删除来源文件
dh 打开共享文件
ds 禁止固定档案文件的名称排序
e<属性> 设置要排除的文件属性
ed 不添加空目录
en 不要放置 '档案文件末尾' 块
ep 排除路径
ep1 排除基准目录
ep2 扩充为完整路径
f 刷新文件
hp[密码] 加密文件数据和标头
idp 禁止百分比显示
ieml[地址] 通过电子邮件发送档案文件
ierr 发送所有讯息至标准错误输出设备
ilog[文件名] 记录错误讯息到文件 (只在注册版中可用)
inul 禁止所有讯息
ioff 完成操作后关闭计算机
isnd 允许声音提示
k 锁定档案文件
kb 保留损坏的文件
m<0..5> 设置压缩等级 (0-存储...3-默认...5-最大)
mc<参数> 设置高级压缩参数
md<大小> 以 KB 为单位的字典大小 (64,128,256,512,1024,2048,4096 或 A-G)
ms[ext;ext] 指定要保存的文件类型
o+ 覆盖已存在的文件
o- 不覆盖已存在的文件
os 保存 NTFS 数据流
ow 保存或还原所有者和组
p[口令] 设置口令
p- 不询问口令
r 包含所有子目录
r0 只包含与通配符匹配的所有子目录
rr[N] 添加数据恢复记录
rv[N] 创建恢复卷
s[<N>,v[-],e] 创建固定格式档案文件
s- 禁止创建固定格式档案文件
sfx[名字] 创建自释放档案文件
si[名字] 从标准输入设备 (stdin) 读取数据
t 归档后测试文件
ta<日期> 处理在 YYYYMMDDHHMMSS 格式中 <指定日期> 后修改的文件
tb<日期> 处理在 YYYYMMDDHHMMSS 格式中 <指定日期> 前修改的文件
tk 保持原有的档案文件时间
tl 将档案文件时间设为最新文件的时间
tn<时间> 处理比 <指定时间> 更新的文件
to<时间> 处理比 <指定时间> 旧的文件
ts<m,c,a>[N] 保存或恢复文件时间属性 (修改、创建及访问时间)
u 更新文件
v 创建分卷压缩时自动检测大小或列出所有的分卷
v<大小>[k,b] 创建分卷, 分卷大小 = <大小> * 1000 [*1024, *1]
vd 创建分卷前先清除磁盘内容
ver[n] 文件版本控制
vn 使用旧样式的卷命名方案
vp 在每个分卷压缩前暂停
w<路径> 指定工作目录
x<文件> 排除指定的文件
x@ 从标准输入设备读取要排除的文件名
x@<列表> 排除指定列表文件中的文件
y 所有的询问都回答是
z<文件> 从文件读取档案文件注释
hchxxzx 2005-05-16
  • 打赏
  • 举报
回复
下面是RAR DOS命令行操作命令

Imports System.IO
Dim jro As JRO.JetEngine
jro = New JRO.JetEngine
Dim mystr As String = "" & Me.Server.MapPath(System.Configuration.ConfigurationSettings.AppSettings("database")) & ""
Dim compressbaseml As String = mystr.Substring(0, mystr.LastIndexOf("\"))
File.Delete(compressbaseml & "\compress.mdb")
jro.CompactDatabase("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Me.Server.MapPath(System.Configuration.ConfigurationSettings.AppSettings("database")) & "", _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & compressbaseml & "\compress.mdb")
'Dim fnname As String = mystr.Substring(mystr.LastIndexOf("\") + 1) '得到文件名
File.Delete(mystr)
Rename(compressbaseml & "\compress.mdb", mystr)
Me.Label1.Text = "数据库压缩成功!"


引用 Interop.JRO.dll
hchxxzx 2005-05-16
  • 打赏
  • 举报
回复
/// <summary>
/// 调用DOS命令,注意多条DOS命令必须以|号隔开
/// </summary>
/// <param name="argm">要操作的DOS命令</param>
/// <returns>返回取到的信息值</returns>
static public string mycmd(string argm)
{
  string myOutString = "";
  //开始创建文件
  Process p = new Process();
  p.StartInfo.UseShellExecute = false;
  p.StartInfo.RedirectStandardInput = true;
  p.StartInfo.RedirectStandardOutput = true;
  p.StartInfo.RedirectStandardError = true;
  p.StartInfo.CreateNoWindow = true;
  p.StartInfo.FileName = "cmd.exe";

  try
  {
    p.Start();
    string[] ary = argm.Split('|');
    for(int i=0;i<ary.Length;i++)
    {
      p.StandardInput.WriteLine(ary[i].ToString());
    }
    p.StandardInput.WriteLine("exit");
    myOutString = p.StandardOutput.ReadToEnd();
    p.Close();
  }
  catch(Exception ex)
  {
    throw new Exception (ex.Message);
  }

  return(myOutString);
}


调用命令:
mycmd("rar a d:\\sql\\xxx.rar d:\\sql\\xxx.gif");

62,073

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧