板砖的日常开发评测:毫无开发经验如何做一个功能简约的压缩软件?看我用20分钟还原整个过程。
最近板砖在对 上的开发产品做运维的时候,发现了可以用来开发本地、远程目录文件压缩、解压缩和加密的开发类库IPWorks Zip,一时心痒下载下来评测一下!
很多压缩软件普通用户可能感觉不到这个功能为商业 会带来了多少便利,我这么举几个例子吧:
- 在我们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类库下载 试一试吧:

标签:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!