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文件。

圖1

 

圖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。

圖3

 

 Invoke Method的屬性如圖4所示

圖4

 

其中,Parameters如圖5所示。部分網友可能由於網絡原因無法訪問Github,那么各參數的含義解釋如圖6。注意參數的類型和順序不能亂。

第1個參數是壓縮后要生成的ZIP文件名,可以是完整文件名(FullName),也可以是相對文件名(如圖所示)。

第2個參數是源文件夾路徑。

第3個參數是指定是否包含源文件夾的子文件夾。

第4個參數是在源文件夾中要篩選的文件名(按這意思應該是可以用通配符,比如“*.txt”,我不演示了,你們自己試試看就好)。

圖5

 

圖6

 

二、解壓縮單個ZIP文件

一樣用Invoke Method,如圖7。

圖7

 

 Invoke Method的屬性如圖8所示,可見大同小異。

圖8

 

不過Parameters參數部分不一樣。如圖9。注意參數的類型和順序。關於參數的解釋如圖10。

第1個參數是要解壓的ZIP文件。

第2個參數是解壓后的文件要保存的文件夾,如果文件夾不存在則會自動創建。

第3個參數是針對解壓文件的篩選條件,類似前述壓縮方法中的參數#4。為NOTHING的話會解壓出ZIP包內的所有文件。

圖9

 

圖10

 

以上就是UiPath基於ICSharpCode.SharpZipLib.Zip.FastZip壓縮/解壓縮ZIP文件的方法。Inovke Method其它未提及的屬性不必做任何改動,保持默認即可。

如果本機確實沒有ICSharpCode.SharpZipLib.Zip.FastZip,官方其實有提供這個包,可以嘗試安裝看看。官方的包相對靠譜的,可以放心安裝使用。不過貌似裝不裝這個,都可以調用ICSharpCode.SharpZipLib.Zip.FastZip。另外,打開你的xaml文件之后,要確保ICSharpCode.SharpZipLib.Zip命名空間有Import進來(圖12)。

圖11

 

 圖12

 

 

歡迎加入UiPath精英群

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM