C# 携手 7-Zip 命令行:大文件压缩的终极武器?

image

前言

嗨,大家好!

今天咱们来聊聊如何用 C# 调用 7-Zip 命令行来压缩大文件,这是个既高效又稳定的好办法,亲测有效!

在实际工作中,压缩文件几乎是家常便饭,但可惜的是,许多常用的方法并不如我们所愿,稍不注意,就会踩 “坑”,我以前就踩了不少 “坑”,比如说:

  1. 用 C# 内置的压缩方法,效率低不说,资源占用还高,尤其是一旦文件超过 2GB 就会频繁出错,而且,它的功能简单得可怜,对于复杂的需求(比如分卷压缩、加密等)几乎无能为力。

  2. 我还尝试过使用 NuGet 上的第三方库(比如 ZipStorer),但是没想到一旦文件总大小超过 4G,压缩出来的文件常常有各种奇奇怪怪的问题,根本解压不了!

幸运的是,我后来选择直接使用 7-Zip 的命令行来压缩文件。

结果令人惊喜:不仅压缩速度极快,而且输出文件的稳定性也大幅提升,完全不用担心解压问题。

下面就让我来分享一下具体的操作步骤吧!

Step By Step 代码

  1. 编写一个打开 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);<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值