前言
嗨,大家好!
今天咱们来聊聊如何用 C# 调用 7-Zip 命令行来压缩大文件,这是个既高效又稳定的好办法,亲测有效!
在实际工作中,压缩文件几乎是家常便饭,但可惜的是,许多常用的方法并不如我们所愿,稍不注意,就会踩 “坑”,我以前就踩了不少 “坑”,比如说:
-
用 C# 内置的压缩方法,效率低不说,资源占用还高,尤其是一旦文件超过 2GB 就会频繁出错,而且,它的功能简单得可怜,对于复杂的需求(比如分卷压缩、加密等)几乎无能为力。
-
我还尝试过使用 NuGet 上的第三方库(比如 ZipStorer),但是没想到一旦文件总大小超过 4G,压缩出来的文件常常有各种奇奇怪怪的问题,根本解压不了!
幸运的是,我后来选择直接使用 7-Zip 的命令行来压缩文件。
结果令人惊喜:不仅压缩速度极快,而且输出文件的稳定性也大幅提升,完全不用担心解压问题。
下面就让我来分享一下具体的操作步骤吧!
Step By Step 代码
-
编写一个打开 CMD 窗口执行一段命令行脚本的方法
public static class CommandUtil { /// <summary> /// 调用 CMD 窗口执行一段命令行脚本 /// </summary> /// <param name="commandLine">命令行脚本</param> /// <param name="errorMsg">错误消息</param> /// <param name="errorMsg">输出消息</param> /// <returns>返回命令执行是否成功状态</returns> public static bool ExecuteCmdCommand(string commandLine, ref string errorMsg, ref string outputMsg) { bool Flag = false; Process proc = new Process(); try { // 配置CMD窗口的启动信息 proc.StartInfo.FileName = "cmd.exe"; proc.StartInfo.UseShellExecute = false; // 不使用操作系统的外部程序 proc.StartInfo.RedirectStandardInput = true; // 开启重定向输入 proc.StartInfo.RedirectStandardOutput = true; // 开启重定向输出 proc.StartInfo.RedirectStandardError = true; // 开启重定向错误输出 proc.StartInfo.CreateNoWindow = true; // 不创建窗口 proc.Start(); proc.StandardInput.WriteLine(commandLine);<