如何在服务器上调用外部程序对文件夹进行压缩,问题解决,马上结帖!!!
解决方案 »
- 弹出提示框不刷新页面
- UpdatePanel中绑定的datelist中有一个linkbutton,问题来了!高人来帮帮吧
- Diagnostics.ProcessStartInfo 调用EXE 怪事~~ 请达人解答~~~ 诡异呀
- 关于 MembershipUser GetUser 方法
- 真的没分了.谢谢高手帮忙关于水晶报表设计
- 求Access中的一个关于汇总的SQL语句。急~~~~~在线等~
- 紧急求救~~关于webService的问题
- 我是静,QQ9813117
- 查询语句可以这样写吗?
- 版主,凭什麽扣我的信誉分啊?????我要投诉
- 【!!!!求一简单的正则表达式!!!!】
- 60分,菜鸟的一些问题
如:
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 ")此段代码能实现调用外部程序么?
Process.Start("winrar.exe",@commandstr);
/// 调用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");
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
共享软件版本 键入 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<文件> 从文件读取档案文件注释
再就是怀疑asp.net用户是不是能有这么大的权限
-----------------------
我的项目里面就是这样用的.没有问题.