调用cmd方法,用于网盘文件压缩下载

本文介绍了一种使用C#来执行CMD命令的方法,并通过CMD命令调用WinRAR进行文件压缩的过程。该方法确保了命令执行完毕后能够及时退出,避免假死状态。此外,还详细介绍了如何通过传递特定参数实现包括子文件夹在内的整个目录的压缩,并在压缩完成后删除源文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

cmd = cmd.Trim().TrimEnd('&') + "&exit";//说明:不管命令是否成功均执行exit命令,否则当调用ReadToEnd()方法时,会处于假死状态
using (Process p = new Process())
{
p.StartInfo.FileName = CmdPath;
p.StartInfo.UseShellExecute = false; //是否使用操作系统shell启动
p.StartInfo.RedirectStandardInput = true; //接受来自调用程序的输入信息
p.StartInfo.RedirectStandardOutput = true; //由调用程序获取输出信息
p.StartInfo.RedirectStandardError = true; //重定向标准错误输出
p.StartInfo.CreateNoWindow = true; //不显示程序窗口
p.Start();//启动程序

//向cmd窗口写入命令
p.StandardInput.WriteLine(cmd);
p.StandardInput.AutoFlush = true;

//获取cmd窗口的输出信息
//output = p.StandardOutput.ReadToEnd();
p.WaitForExit();//等待程序执行完退出进程 //这里不写会出现代码执行过快,导致cmd还没有执行而报错
p.Close();
}

文件压缩:(如果不cd到文件夹下,会导致压压缩全路径文件。)

var cdPath = @"d:\FileStructure\" + guids;//压缩前cmd到达的文件夹位置
var RarexePath = @"D:\Software\WinRAR\Rar.exe";//rar.exe的位置
var finishRarFilePath = @"D:\WWW\Uploads\UploadsRar\" + guids + @".rar";//压缩完成的文件及文件名
string CmdPath = @"C:\Windows\System32\cmd.exe";//cmd.exe的位置
string cmd = @"cd /d " + cdPath + @" && " + RarexePath + @" a -r -ibck -df -k -m1 " + finishRarFilePath + @" *.* ";//cmd传的命令
//-r连同子文件夹 -ibck 后台运行 - df压缩后删除源文件 -k 锁定压缩文件 -m1 最快 最快速的方法 ( 最低的压缩比)

转载于:https://www.cnblogs.com/zhuxueyuan/p/7352463.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值