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"));