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

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

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

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

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

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

压缩界面

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

文件压缩效果

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

  • 可以选择文件夹中哪些可以加入压缩、排除压缩
  • 实现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类库下载 试一试吧:

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

标签:

来源:慧都

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年11月12日
下一篇 2021年11月12日

相关推荐

发表回复

登录后才能评论