日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

SevenZipSharp的入门教程(包含如何加密压缩,解密压缩)

發布時間:2023/12/15 综合教程 24 生活家
生活随笔 收集整理的這篇文章主要介紹了 SevenZipSharp的入门教程(包含如何加密压缩,解密压缩) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

(一)為什么選擇7z

7z 是一種主流高效的壓縮格式,它擁有極高的壓縮比。在計算機科學中,7z是一種可以使用多種壓縮算法進行數據壓縮的檔案格式。該格式最初被7-Zip實現并采用,但是這種檔案格式是公有的,并且7-Zip軟件本身亦在GNU寬通用公共許可證 (GNU LGPL)協議下 開放源代碼。目前LZMA軟件開發工具包的最新版本為V9.34。7z格式的MIME類型為application/x-7z-compressed。
通常使用7-Zip的 7z 格式能比使用 zip 格式的壓縮文件小 30-70%。
并且使用7-Zip創建的 zip 格式比大多數其它壓縮軟件創建的都小 2-10%。

(二) SevenZipSharp初始化工作

1、首先通過nuget獲取SevenZipSharp;

2、由于SevenZipSharp 是依賴于7z.dll的,所以你要單獨添加7z.Dll放到你項目文件下的Bin目錄,放這個的時候,要注意下系統是要用32位,還是64的呢?如果弄錯會報這個錯誤”an not load 7-zip library or internal COM error! Message: DLL file does not exist“

3、如果你不按照第二步那種做法,你想自己指定7z.dll的位置。你可以這么做

   var path = "~/App_Data/7z/7z.dll";
   SevenZipBase.SetLibraryPath(path);

然后可能有些同學不太明白我說什么,先來這里把7z.dll下載下來再說吧。https://github.com/gdoujkzz/7zdll.git

(三) 使用SevenZipSharp 進行壓縮

普通壓縮(不加密壓縮)

                var tmp = new SevenZipCompressor(); //7z壓縮
                tmp.ScanOnlyWritable = true; //只可寫
                //tmp.CompressFiles()這個有三個重載,這里只講其中一個比較常用的。
                //public void CompressFiles(string archiveName, params string[] fileFullNames)
                //archiveName:這個是代表生成的7z文件存在哪里
                //fileFullNames:這個參數是要壓縮的文件是一個params數組,特別注意必須是完整的路徑名才有效
                tmp.CompressFiles(@"D:maxarch.7z", @"D:maxSourceCodeDataExchSevenZipSharpDemoinDebug	est.txt", @"D:maxSourceCodeDataExchSevenZipSharpDemoinDebug	est1.txt");

                //tmp.CompressDirectory 壓縮指定路徑下面的所有文件,這個有12個重載,也只講其中一個簡單的。
               // public void CompressDirectory( string directory, string archiveName) 
                tmp.CompressDirectory(@"D:maxSourceCodeDataExchSevenZipSharpDemoinDebug", @"arch.7z");

加密壓縮

其實也是和剛剛一樣,看代碼。

   var tmp = new SevenZipCompressor();
   tmp.CompressFilesEncrypted(@"D:maxjiami.7z", "123456", @"D:maxSourceCodeDataExchSevenZipSharpDemoinDebug	est1.txt", @"D:maxSourceCodeDataExchSevenZipSharpDemoinDebug	est.txt")

壓縮文件要加密,我暫時看到是只有這一種方式,如果大家有其他建議或不同,歡迎交流,謝謝。

(四)使用SevenZipSharp 進行解壓

普通解壓

    using (var tmp = new SevenZipExtractor(@"d:max
oEncrypted.7z")) { //7z文件路徑
        for (int i = 0; i < tmp.ArchiveFileData.Count; i++) {
             tmp.ExtractFiles(@"d:max", tmp.ArchiveFileData[i].Index); //解壓文件路徑
          }
     }
//同樣他也是支持界面某個路徑下面的7z包的
//temp.ExtractArchive(path);

加密文件解壓

      using (var tmp = new SevenZipExtractor(@"d:maxjiami2.7z","123456")) { //7z文件路徑和7z文件密碼
                    for (int i = 0; i < tmp.ArchiveFileData.Count; i++) {
                        tmp.ExtractFiles(@"d:max	est", tmp.ArchiveFileData[i].Index); //解壓文件路徑

            }
      }

(五)其他功能

除了上面所說的一些基本功能之外, 還有下面這些功能。

(1)SevenZipSharp支持跨平臺,可以在Mono上面使用。

(2)SevenZIpSharp還支持進行異步的壓縮和解壓。

(3)還支持多卷壓縮和解壓

(4)還支持...還有很多厲害的功能,都沒來得及嘗試

(六) 題外話

等過段時間有空了,要封裝成一個工具類,在各個平臺上使用下SevenZipSharp,以及研究下它的源碼。

希望路過的大神能提點意見,讓我這個菜鳥能夠更快成長。謝謝。

總結

以上是生活随笔為你收集整理的SevenZipSharp的入门教程(包含如何加密压缩,解密压缩)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。