在UiPath中壓縮與解壓ZIP文件有許多已知的方法。好比
1.經過System.IO.Compression實現html
參考:https://blog.csdn.net/ahxdyz/article/details/94212631git
存在問題:經實測,System.IO.Compression有時會點不出ZipFile(如圖1),通過類型檢查也找不到(如圖2)。推測是與本機.Net Framework版本有關係,或者須要Import Namespace什麼的,暫未深究。有網友反饋沒法照搬這個方法壓縮/解壓ZIP文件。github
圖1api
圖2網絡
2.經過PowerShell / Windows內置解壓 / 調用COM對象 實現spa
參考:https://blog.csdn.net/ahxdyz/article/details/93534213.net
存在問題:增長項目技術複雜度,且對環境可能有要求。對於掌握UiPath都有點吃力的網友來講,照抄略有困難。3d
基於網友反饋,我特意演示一下基於ICSharpCode.SharpZipLib.Zip.FastZip壓縮/解壓縮ZIP文件的方法,這個包內置集成於UiPath(你裝好UiPath就有了),無須安裝額外的包或組件。code
參考文檔:https://icsharpcode.github.io/SharpZipLib/help/api/ICSharpCode.SharpZipLib.Zip.FastZip.htmlhtm
1、將單個文件壓縮爲ZIP文件示例。
1.用Invoke Method,如圖3。
圖3
Invoke Method的屬性如圖4所示
圖4
其中,Parameters如圖5所示。部分網友可能因爲網絡緣由沒法訪問Github,那麼各參數的含義解釋如圖6。注意參數的類型和順序不能亂。
第1個參數是壓縮後要生成的ZIP文件名,能夠是完整文件名(FullName),也能夠是相對文件名(如圖所示)。
第2個參數是源文件夾路徑。
第3個參數是指定是否包含源文件夾的子文件夾。
第4個參數是在源文件夾中要篩選的文件名(按這意思應該是能夠用通配符,好比「*.txt」,我不演示了,大家本身試試看就好)。
圖5
圖6
2、解壓縮單個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精英羣