翻譯|使用教程|編輯:李顯亮|2020-04-23 11:11:49.233|閱讀 326 次
概述:在本文中還針對(duì)類(lèi)似的情況,并提供了一些簡(jiǎn)單的方法來(lái)壓縮文件或文件夾,并使用C#以編程方式創(chuàng)建ZIP存檔。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門(mén)軟控件火熱銷(xiāo)售中 >>
ZIP檔案是用來(lái)壓縮和保持一個(gè)或多個(gè)文件或文件夾到一個(gè)單一的容器中。ZIP歸檔文件封裝了文件和文件夾,并保存了它們的元數(shù)據(jù)信息。歸檔的最常見(jiàn)用法是減小用于存儲(chǔ)或傳輸?shù)奈募拇笮。?yīng)用加密以提高安全性。
除文件壓縮工具外,各種桌面和Web應(yīng)用程序還使用自動(dòng)壓縮/提取功能來(lái)上載,下載,共享或加密文件。
Aspose.ZIP for .NET是用于標(biāo)準(zhǔn)ZIP格式的靈活文檔壓縮和存檔操作API。API使.NET應(yīng)用程序能夠?qū)崿F(xiàn)文件壓縮/解壓縮,文件存檔以及文件夾和存檔加密。
Aspose.Zip for .NET已升級(jí)至V20.3,如果你還沒(méi)有用過(guò)Aspose.Zip可以點(diǎn)擊這里下載最新版測(cè)試。
在本文中還針對(duì)類(lèi)似的情況,并提供了一些簡(jiǎn)單的方法來(lái)壓縮文件或文件夾,并使用C#以編程方式創(chuàng)建ZIP存檔。本文將演示:
以下是通過(guò)將文件添加到ZIP歸檔文件來(lái)壓縮文件的步驟:
下面的代碼示例演示如何使用C#將文件添加到ZIP存檔中。
// Create FileStream for output ZIP archive using (FileStream zipFile = File.Open("compressed_file.zip", FileMode.Create)) { // File to be added to archive using (FileStream source1 = File.Open("alice29.txt", FileMode.Open, FileAccess.Read)) { using (var archive = new Archive(new ArchiveEntrySettings())) { // Add file to the archive archive.CreateEntry("alice29.txt", source1); // ZIP file archive.Save(zipFile); } } }
如果要將多個(gè)文件添加到ZIP存檔中,可以使用以下方式之一進(jìn)行。
在此方法中,F(xiàn)ileStream類(lèi)用于使用Archive.CreateEntry(String,F(xiàn)ileStream)方法將文件添加到ZIP存檔中。下面的代碼示例演示如何在C#中將多個(gè)文件添加到ZIP中。
// Create FileStream for output ZIP archive using (FileStream zipFile = File.Open("compressed_files.zip", FileMode.Create)) { // File to be added to archive using (FileStream source1 = File.Open("alice29.txt", FileMode.Open, FileAccess.Read)) { // File to be added to archive using (FileStream source2 = File.Open("asyoulike.txt", FileMode.Open, FileAccess.Read)) { using (var archive = new Archive()) { // Add files to the archive archive.CreateEntry("alice29.txt", source1); archive.CreateEntry("asyoulik3.txt", source2); // ZIP the files archive.Save(zipFile, new ArchiveSaveOptions() { Encoding = Encoding.ASCII, ArchiveComment = "two files are compressed in this archive" }); } } } }
也可以使用FileInfo類(lèi)將多個(gè)文件添加到ZIP存檔中。在此方法中,將使用FileInfo類(lèi)加載文件,并使用Archive.CreateEntry(String,F(xiàn)ileInfo)方法將其添加到ZIP存檔中。下面的代碼示例演示如何使用C#中的FileInfo類(lèi)對(duì)多個(gè)文件進(jìn)行ZIP 。
// Create FileStream for output ZIP archive using (FileStream zipFile = File.Open("compressed_files.zip", FileMode.Create)) { // Files to be added to archive FileInfo fi1 = new FileInfo("alice29.txt"); FileInfo fi2 = new FileInfo("fields.c"); using (var archive = new Archive()) { // Add files to the archive archive.CreateEntry("alice29.txt", fi1); archive.CreateEntry("fields.c", fi2); // Create ZIP archive archive.Save(zipFile, new ArchiveSaveOptions() { Encoding = Encoding.ASCII }); } }
可以對(duì)文件夾進(jìn)行ZIP壓縮,這可能是將多個(gè)文件添加到ZIP存檔的另一種選擇。只需將源文件放入一個(gè)文件夾中,然后將該文件夾添加到ZIP存檔中。以下是壓縮文件夾的步驟:
下面的代碼示例演示如何在C#中將文件夾添加到ZIP。
// Create FileStream for output ZIP archive using (FileStream zipFile = File.Open("compress_directory.zip", FileMode.Create)) { using (Archive archive = new Archive()) { // Folder to be Zipped DirectoryInfo corpus = new DirectoryInfo("CanterburyCorpus"); archive.CreateEntries(corpus); // Create ZIP archive archive.Save(zipFile); } }
可以使用密碼保護(hù)ZIP存檔。為了指定ZIP存檔的密碼,在Archive的構(gòu)造函數(shù)中使用ArchiveEntrySettings類(lèi)。以下代碼示例顯示了如何在C#中創(chuàng)建受密碼保護(hù)的ZIP歸檔文件。
// Create FileStream for output ZIP archive using (FileStream zipFile = File.Open("compress_directory.zip", FileMode.Create)) { using (Archive archive = new Archive(new ArchiveEntrySettings(null, new TraditionalEncryptionSettings("p@s$")))) { // Add folder to the archive DirectoryInfo corpus = new DirectoryInfo("CanterburyCorpus"); archive.CreateEntries(corpus); // Create ZIP archive archive.Save(zipFile); } }
.NET的Aspose.ZIP還允許您將AES加密應(yīng)用于ZIP存檔。您可以使用以下AES加密方法:
為了應(yīng)用AES加密,API提供了AesEcryptionSettings類(lèi)。以下代碼示例顯示了如何在C#中創(chuàng)建AES加密的ZIP存檔。
// Create FileStream for output ZIP archive using (FileStream zipFile = File.Open("compress_directory.zip", FileMode.Create)) { using (Archive archive = new Archive(new ArchiveEntrySettings(null, new AesEcryptionSettings("p@s$", EncryptionMethod.AES128)))) { // Add folder to archive DirectoryInfo corpus = new DirectoryInfo("CanterburyCorpus"); archive.CreateEntries(corpus); // Create ZIP archive archive.Save(zipFile); } }還想要更多嗎?您可以點(diǎn)擊閱讀【2019 · Aspose最新資源整合】,查找需要的教程資源。如果您有任何疑問(wèn)或需求,請(qǐng)隨時(shí)加入Aspose技術(shù)交流群(642018183),我們很高興為您提供查詢和咨詢。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn