翻譯|使用教程|編輯:李顯亮|2020-04-23 11:11:49.233|閱讀 326 次
概述:在本文中還針對類似的情況,并提供了一些簡單的方法來壓縮文件或文件夾,并使用C#以編程方式創建ZIP存檔。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
ZIP檔案是用來壓縮和保持一個或多個文件或文件夾到一個單一的容器中。ZIP歸檔文件封裝了文件和文件夾,并保存了它們的元數據信息。歸檔的最常見用法是減小用于存儲或傳輸的文件的大小,并應用加密以提高安全性。
除文件壓縮工具外,各種桌面和Web應用程序還使用自動壓縮/提取功能來上載,下載,共享或加密文件。
Aspose.ZIP for .NET是用于標準ZIP格式的靈活文檔壓縮和存檔操作API。API使.NET應用程序能夠實現文件壓縮/解壓縮,文件存檔以及文件夾和存檔加密。
Aspose.Zip for .NET已升級至V20.3,如果你還沒有用過Aspose.Zip可以點擊這里下載最新版測試。
在本文中還針對類似的情況,并提供了一些簡單的方法來壓縮文件或文件夾,并使用C#以編程方式創建ZIP存檔。本文將演示:
以下是通過將文件添加到ZIP歸檔文件來壓縮文件的步驟:
下面的代碼示例演示如何使用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); } } }
如果要將多個文件添加到ZIP存檔中,可以使用以下方式之一進行。
在此方法中,FileStream類用于使用Archive.CreateEntry(String,FileStream)方法將文件添加到ZIP存檔中。下面的代碼示例演示如何在C#中將多個文件添加到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類將多個文件添加到ZIP存檔中。在此方法中,將使用FileInfo類加載文件,并使用Archive.CreateEntry(String,FileInfo)方法將其添加到ZIP存檔中。下面的代碼示例演示如何使用C#中的FileInfo類對多個文件進行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 }); } }
可以對文件夾進行ZIP壓縮,這可能是將多個文件添加到ZIP存檔的另一種選擇。只需將源文件放入一個文件夾中,然后將該文件夾添加到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); } }
可以使用密碼保護ZIP存檔。為了指定ZIP存檔的密碼,在Archive的構造函數中使用ArchiveEntrySettings類。以下代碼示例顯示了如何在C#中創建受密碼保護的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加密應用于ZIP存檔。您可以使用以下AES加密方法:
為了應用AES加密,API提供了AesEcryptionSettings類。以下代碼示例顯示了如何在C#中創建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); } }還想要更多嗎?您可以點擊閱讀【2019 · Aspose最新資源整合】,查找需要的教程資源。如果您有任何疑問或需求,請隨時加入Aspose技術交流群(642018183),我們很高興為您提供查詢和咨詢。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn