Chromium 解壓壓縮包

轉載:https://blog.csdn.net/jshiya/article/details/105999382

build加

"//third_party/zlib/google:zip",

src/third_party/zlib/google該目錄下是google爲Chromium封裝實現的zlib。

//將指定的ZIP文件壓縮到ZIP檔案中。 | params |中指定了源文件和ZIP目標文件(以及其他設置)。
bool Zip(const ZipParams& params);

// 不需要過濾器的方法
//將src_dir的內容壓縮到dest_file中。 src_dir必須是目錄。
// src_dir 需要被壓縮的文件目錄,;dest_file 壓縮後保存的文件。
//如果|include_hidden_files|:= true 將包含以“.”開始的文件如(“.123”),= false 不包括隱藏文件。

bool Zip(const base::FilePath& src_dir, const base::FilePath& dest_file,
         bool include_hidden_files);
zip::Zip(base::FilePath(L"C:\\123"), base::FilePath(L"D:\\123.ZIP"), false);

//將src_dir的內容壓縮到dest_file中。 src_dir必須是目錄。
// src_dir 需要被壓縮的文件目錄,;dest_file 壓縮後保存的文件。
// | filter_cb | := true 不過濾某些文件,,= false 過濾某些文件。

    using FilterCallback = base::RepeatingCallback<bool(const base::FilePath&)>;        
    bool ZipWithFilterCallback(const base::FilePath& src_dir, const base::FilePath& dest_file, const FilterCallback& filter_cb)
    bool IsHiddenFile(const base::FilePath& file_path) {
        return file_path.BaseName().value()[0] == ',';//過濾掉以逗號“,”開頭的文件
    }

    bool ExcludeHiddenFilesFilter(const base::FilePath& file_path) {
        return !IsHiddenFile(file_path);
    }
    int main() {
        zip::FilterCallback filter_cb =base::BindRepeating(&ExcludeHiddenFilesFilter);
        zip::ZipWithFilterCallback(base::FilePath(L"C:\\123"),base::FilePath(L"C:\\1234.ZIP"), std::move(filter_cb));
        return 0;
    }

//將 | zip_file | 解壓到 | dest_dir | 。

    bool Unzip(const base::FilePath& zip_file, const base::FilePath& dest_dir);
    zip::Unzip(base::FilePath(L"C:\\1234.ZIP"), base::FilePath(L"C:\\1234"));

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章