MFC 自定义压缩,解压缩工具

界面效果如下:

对外提供的接口如下:

public:

void setCallback(zp::Callback callback, void* param);

bool open(const zp::String& path, bool readonly = false);

bool create(const zp::String& path, const zp::String& inputPath);

void close();

bool isOpen() const;

bool defrag();

zp::IPackage* getPack() const;

const zp::Char* packageFilename() const;

bool enterDir(const zp::String& path);

//srcPath can't be empty

//if dstPath is empty, file/dir will be add to current path of package

bool add(const zp::String& srcPath, const zp::String& dstPath, bool flush = true);

bool remove(const zp::String& path);

void flush();

//if srcPath is empty, current path of package will be extracted

//if dstPath is empty, file/dir will be extracted to current path of system

bool extract(const zp::String& srcPath, const zp::String& dstPath);

void setCurrentNode(const ZpNode* node);

const ZpNode* currentNode() const;

const ZpNode* rootNode() const;

const zp::String& currentPath() const;

void getNodePath(const ZpNode* node, zp::String& path) const;

zp::u64 countDiskFileSize(const zp::String& path);

zp::u64 countNodeFileSize(const ZpNode* node);

相关推荐
Ricky_Theseus1 小时前
C++右值引用
java·开发语言·c++
吴梓穆2 小时前
UE5 c++ 常用方法
java·c++·ue5
云栖梦泽2 小时前
Linux内核与驱动:9.Linux 驱动 API 封装
linux·c++
Morwit2 小时前
【力扣hot100】 1. 两数之和
数据结构·c++·算法·leetcode·职场和发展
SpiderPex2 小时前
第十七届蓝桥杯 C++ B组-题目 (最新出炉 )
c++·职场和发展·蓝桥杯
炘爚2 小时前
C++ 右值引用与程序优化
开发语言·c++
si莉亚3 小时前
ROS2安装EVO工具包
linux·开发语言·c++·开源
智者知已应修善业3 小时前
【51单片机单按键切换广告屏】2023-5-17
c++·经验分享·笔记·算法·51单片机
良木生香3 小时前
【C++初阶】C++入门相关知识(2):输入输出 & 缺省参数 & 函数重载
开发语言·c++
小此方3 小时前
Re:从零开始的 C++ 进阶篇(三)彻底搞懂 C++ 多态:虚函数、虚表与动态绑定的底层原理
c++