轉載: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"));