彩票走势图

20分钟用C#做一个压缩软件!IPWorks ZIP支持10种开发语言

原创|使用教程|编辑:何跃|2021-12-16 15:09:44.210|阅读 469 次

概述:板砖的日常开发评测:毫无开发经验如何做一个功能简约的压缩软件?看我用20分钟还原整个过程。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

最近板砖在对慧都网上的开发产品做运维的时候,发现了可以用来开发本地、远程目录文件压缩、解压缩和加密的开发类库IPWorks Zip,一时心痒下载下来评测一下!

IPWorks ZIP .NET类库下载

很多压缩软件普通用户可能感觉不到这个功能为商业社会带来了多少便利,我这么举几个例子吧:

  • 在我们OA、ERP里面,需要批量化将一些工作文件归类、存档、发送给别人,以前需要自己本地操作好,然后传出,别人是否收到还不一定,如果这个功能集成到咱们的办公系统,那么整个链条都是可以被监管的;
  • 我们程序猿需要上传一些文件到服务器,以往需要FTP软件,为了安全有多少人就需要多少个账号,如果这个功能集成到咱们的业务系统中,权限管理和安全都得到了保障;
  • 在阿里云、景安网络等网络服务商那里,使用这个功能的网页版本,实现了对咱们网站内部文件做管理。
  • ···


压缩界面

文件压缩效果

上图就是今天我要实现的程序功能:

  • 可以选择文件夹中哪些可以加入压缩、排除压缩
  • 实现6种压缩文档方法
  • 给压缩包加密




第一步:照图拖窗体,注意命名规范

第二步:参照IPWorks ZIP帮助文档,实现咱们的压缩功能

        private void CompressUsingZip()
        {
            zip1 = new nsoftware.IPWorksZip.Zip();
            zip1.OnProgress += new nsoftware.IPWorksZip.Zip.OnProgressHandler(this.zip1_OnProgress);//注意这里,绑定了我们在压缩过程中的事件  

            zip1.ArchiveFile = textBox1.Text.Trim() + tb4.Text;// 注意这里,如果只填写文件名,那么文件将保存到bin文件夹,如果填写了存储的绝对路径,则按路径保存
            zip1.RecurseSubdirectories = cb1.Checked;
            zip1.Files.Clear();
            zip1.IncludeFiles(tb1.Text + tb2.Text);
            zip1.ExcludedFiles = tb3.Text;
            if (tbPassword.Text != "")
            {
                zip1.Password = tbPassword.Text.Trim();

            }

            zip1.Compress();
        }

        private void CompressUsingTar(bool UseGzipCompression)
        {
            tar1.ArchiveFile = tb4.Text;
            tar1.RecurseSubdirectories = cb1.Checked;
            tar1.Files.Clear();
            tar1.IncludeFiles(tb1.Text + tb2.Text);
            tar1.ExcludedFiles = tb3.Text;
            tar1.UseGzipCompression = UseGzipCompression;
            tar1.Compress();
        }

        private void CompressUsingJar()
        {
            jar1.ArchiveFile = tb4.Text;
            jar1.RecurseSubdirectories = cb1.Checked;
            jar1.Files.Clear();
            jar1.IncludeFiles(tb1.Text + tb2.Text);
            jar1.ExcludedFiles = tb3.Text;
            jar1.Compress();
        }
第三步:实现咱们的目录选择和输出目录的功能
            FolderBrowserDialog FBD = new FolderBrowserDialog();
            FBD.SelectedPath = System.IO.Directory.GetCurrentDirectory();
            FBD.ShowDialog();
            tb1.Text = FBD.SelectedPath;
第四步:绑定在文件压缩中进度条的功能
        private void zip1_OnProgress(object sender, nsoftware.IPWorksZip.ZipProgressEventArgs e)
        {
            progressBar1.Value = e.PercentProcessed;
        }

        private void tar1_OnProgress(object sender, nsoftware.IPWorksZip.TarProgressEventArgs e)
        {
            progressBar1.Value = e.PercentProcessed;
        }

        private void jar1_OnProgress(object sender, nsoftware.IPWorksZip.JarProgressEventArgs e)
        {
            progressBar1.Value = e.PercentProcessed;
        }

第五步: 实现压缩

            if (!tb1.Text.Equals("") && !tb1.Text.EndsWith("\\"))
                tb1.Text += '\\';
            progressBar1.Value = 0;

            try
            {
                if (rbZip.Checked) CompressUsingZip();
                else if (rbTar.Checked) CompressUsingTar(false);
                else if (rbJar.Checked) CompressUsingJar();
                else if (rbTar.Checked) CompressUsingTar(true);
                MessageBox.Show("Finished!");
            }
            catch (nsoftware.IPWorksZip.IPWorksZipException ipwe)
            {
                MessageBox.Show(ipwe.Message);
            }
整个过程板砖用了大约20分钟实现,因为厂商提供了详细的实现说明,如果看到这里的您也需要这方面功能,点击这里IPWorks ZIP .NET类库下载 试一试吧:




标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP