UiPath压缩与解压缩ZIP文件示例

在UiPath中压缩与解压ZIP文件有许多已知的方法。比如
1.通过System.IO.Compression实现

参考:https://blog.csdn.net/ahxdyz/article/details/94212631

存在问题:经实测,System.IO.Compression有时会点不出ZipFile(如图1),经过类型检查也找不到(如图2)。推测是与本机.Net Framework版本有关系,或者需要Import Namespace什么的,暂未深究。有网友反馈无法照搬这个方法压缩/解压ZIP文件。

UiPath压缩与解压缩ZIP文件示例_第1张图片

图1

 

UiPath压缩与解压缩ZIP文件示例_第2张图片

图2

 

2.通过PowerShell / Windows内置解压 / 调用COM对象 实现

参考:https://blog.csdn.net/ahxdyz/article/details/93534213

存在问题:增加项目技术复杂度,且对环境可能有要求。对于掌握UiPath都有点吃力的网友来说,照抄略有困难。

 

基于网友反馈,我特地演示一下基于ICSharpCode.SharpZipLib.Zip.FastZip压缩/解压缩ZIP文件的方法,这个包内置集成于UiPath(你装好UiPath就有了),无须安装额外的包或组件。

参考文档:https://icsharpcode.github.io/SharpZipLib/help/api/ICSharpCode.SharpZipLib.Zip.FastZip.html

一、将单个文件压缩为ZIP文件示例。

1.用Invoke Method,如图3。

UiPath压缩与解压缩ZIP文件示例_第3张图片

图3

 

 Invoke Method的属性如图4所示

UiPath压缩与解压缩ZIP文件示例_第4张图片

图4

 

其中,Parameters如图5所示。部分网友可能由于网络原因无法访问Github,那么各参数的含义解释如图6。注意参数的类型和顺序不能乱。

第1个参数是压缩后要生成的ZIP文件名,可以是完整文件名(FullName),也可以是相对文件名(如图所示)。

第2个参数是源文件夹路径。

第3个参数是指定是否包含源文件夹的子文件夹。

第4个参数是在源文件夹中要筛选的文件名(按这意思应该是可以用通配符,比如“*.txt”,我不演示了,你们自己试试看就好)。

UiPath压缩与解压缩ZIP文件示例_第5张图片

图5

 

UiPath压缩与解压缩ZIP文件示例_第6张图片

图6

 

二、解压缩单个ZIP文件

一样用Invoke Method,如图7。

UiPath压缩与解压缩ZIP文件示例_第7张图片

图7

 

 Invoke Method的属性如图8所示,可见大同小异。

UiPath压缩与解压缩ZIP文件示例_第8张图片

图8

 

不过Parameters参数部分不一样。如图9。注意参数的类型和顺序。关于参数的解释如图10。

第1个参数是要解压的ZIP文件。

第2个参数是解压后的文件要保存的文件夹,如果文件夹不存在则会自动创建。

第3个参数是针对解压文件的筛选条件,类似前述压缩方法中的参数#4。为NOTHING的话会解压出ZIP包内的所有文件。

UiPath压缩与解压缩ZIP文件示例_第9张图片

图9

 

UiPath压缩与解压缩ZIP文件示例_第10张图片

图10

 

以上就是UiPath基于ICSharpCode.SharpZipLib.Zip.FastZip压缩/解压缩ZIP文件的方法。Inovke Method其它未提及的属性不必做任何改动,保持默认即可。

如果本机确实没有ICSharpCode.SharpZipLib.Zip.FastZip,官方其实有提供这个包,可以尝试安装看看。官方的包相对靠谱的,可以放心安装使用。不过貌似装不装这个,都可以调用ICSharpCode.SharpZipLib.Zip.FastZip。另外,打开你的xaml文件之后,要确保ICSharpCode.SharpZipLib.Zip命名空间有Import进来(图12)。

UiPath压缩与解压缩ZIP文件示例_第11张图片

图11

 

UiPath压缩与解压缩ZIP文件示例_第12张图片

 图12

 

 

欢迎加入UiPath精英群

UiPath压缩与解压缩ZIP文件示例_第13张图片

 

你可能感兴趣的:(UiPath压缩与解压缩ZIP文件示例)