當談到壓縮算法時,我並不十分精通。C++和SharpZipLib
我有一段C#代碼,它使用前面提到的庫來壓縮和解壓縮大塊數據。它使用壓縮級別3,但除此之外,這是最基本的實現。
我現在想要使用C++來處理數據。由於它是一種zip格式,我們正在討論deflate算法,對吧?
我正確地認爲任何處理zip壓縮的C++庫都使用該算法,並且它與C#版本兼容嗎? 3級壓縮是一個zip標準,還是C#lib特有的東西?
基本上,在尋找和實現庫到我的代碼中時,我需要注意什麼,如果有的話?
當談到壓縮算法時,我並不十分精通。C++和SharpZipLib
我有一段C#代碼,它使用前面提到的庫來壓縮和解壓縮大塊數據。它使用壓縮級別3,但除此之外,這是最基本的實現。
我現在想要使用C++來處理數據。由於它是一種zip格式,我們正在討論deflate算法,對吧?
我正確地認爲任何處理zip壓縮的C++庫都使用該算法,並且它與C#版本兼容嗎? 3級壓縮是一個zip標準,還是C#lib特有的東西?
基本上,在尋找和實現庫到我的代碼中時,我需要注意什麼,如果有的話?
既然是zip格式,我們正在談論deflate算法吧?
並非所有的.zip文件都使用DEFLATE算法。該ZIP規範列舉了大量的不同的壓縮方法,它支持:
4.4.5 compression method: (2 bytes)
0 - The file is stored (no compression)
1 - The file is Shrunk
2 - The file is Reduced with compression factor 1
3 - The file is Reduced with compression factor 2
4 - The file is Reduced with compression factor 3
5 - The file is Reduced with compression factor 4
6 - The file is Imploded
7 - Reserved for Tokenizing compression algorithm
8 - The file is Deflated
9 - Enhanced Deflating using Deflate64(tm)
10 - PKWARE Data Compression Library Imploding (old IBM TERSE)
11 - Reserved by PKWARE
12 - File is compressed using BZIP2 algorithm
13 - Reserved by PKWARE
14 - LZMA (EFS)
15 - Reserved by PKWARE
16 - Reserved by PKWARE
17 - Reserved by PKWARE
18 - File is compressed using IBM TERSE (new)
19 - IBM LZ77 z Architecture (PFS)
97 - WavPack compressed data
98 - PPMd version I, Rev 1
我是正確的假設,任何C++庫,與ZIP壓縮涉及使用該算法,它是用C#版本兼容?
這真的取決於圖書館的作者來決定他們支持一下,雖然DEFLATE 應該幾乎在每一個壓縮庫來實現,由於其廣泛使用。儘管不是所有的庫都與SharpZipLib兼容,因爲不同的程序員對於如何最好地組織他們的代碼會有不同的想法。
3級壓縮是壓縮標準還是C#lib獨有的東西?
它是標準的一部分。
4 - The file is Reduced with compression factor 3
基本上,我有什麼看出來的,如果有的話,尋找和實現庫到我的代碼是什麼時候?
確保庫支持您要使用的任何壓縮方法,確保API對你有意義的,並試圖找到正在使用的庫的基準來看看它是多麼快。例如,如果您需要使用zip數據而不是讀取和寫入磁盤,那麼確保該庫可以寫入流或字節緩衝區以便通過網絡進行發送。
Link符合ZIP規範。
壓縮等級是在壓縮時選擇的速度與壓縮比的權衡。它對解壓縮器解壓縮的能力沒有任何影響。
很有可能您的zip文件包含壓縮條目。您可以使用任何解壓縮程序列出內容並找出。