src/third_party/zlib/google该目录下是google为Chromium封装实现的zlib。
一、zip.cc
//将指定的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"));