天天看點

Qt5壓縮解壓縮檔案/夾

全網居然沒找到一個能直接壓縮整個檔案夾的c/c++庫,就算找到了zlib,karchive,archive等開源庫,基本也是在Linux下支援的較好,在win下隻有zlib還算是編譯過了。而且不能全檔案夾壓縮的,都是buffer或者單檔案壓縮,這就好奇了,标準zip怎麼搞?原來zip是有一個特定archive的,連結在此。

由此思路,如果自己要壓縮檔案夾,那就自己周遊,然後自己定義壓縮檔案的格式就好了,當然不是标準化的壓縮格式而已了。但是夠自己使用就行。這麼了解,實作檔案夾的壓縮就顯得不那麼重要了,重要的是壓縮算法,而提供壓縮算法的庫就多了去了,也容易找到。下面就用qt5簡單實作一個檔案的壓縮與解壓縮。注意,沒有全檔案一次讀取再壓縮,是考慮到檔案太大,比如4g,會直接沖爆你的記憶體。下面測試代碼已使用MD5驗證通過。show code:

#include <QCoreApplication>
#include <QFile>
#include <QDataStream>
#include <QDebug>

#define READ_BUFFER 10240
bool compress(QString ifile, QString ofile)
{
    QFile file(ifile);
    QFile output(ofile);

    if(file.open(QFile::ReadOnly) &&
            o
           
Qt

繼續閱讀