Code date creation 新一代 C++ 图形化数据生成器 v8.0.0 · 幻想

技术内幕 · 08 / 16

ZIP 打包模块

7.1.0 不再自己写压缩格式,改为调用系统自带的 PowerShell 打包。

16 个章节 37 段代码 21 张对照表 全部对着源码核对

早先的版本为了贯彻「不依赖第三方」,按 ZIP 规范手写了 Local File Header、Central Directory 与 CRC32 查表。7.1.0 把这段换掉了 —— 理由是系统本来就带压缩能力,自己维护一套格式实现没有收益,反而容易在中文文件名、大文件、目录递归这些边界上出问题。

调用方式

CPP14 行
static string ApiZip(const string& body) {
    string src = JsonValue(body, "src");
    string dst = JsonValue(body, "dst");
    if (src.empty() || dst.empty())
        return "{\"ok\":false,\"message\":\"请选择源目录和输出 ZIP\"}";
    if (dst.find(".zip") == string::npos) dst += ".zip";

    string ps = "powershell -NoProfile -Command \"Compress-Archive -Path '"
              + src + "' -DestinationPath '" + dst + "' -Force\"";
    string out;
    if (RunCommand(Utf8ToWstr(ps), L"", out))
        return "{\"ok\":true,\"path\":\"" + JsonEsc(dst) + "\"}";
    return "{\"ok\":false,\"message\":\"打包失败:" + JsonEsc(out) + "\"}";
}
开关作用
-NoProfile不加载用户的 PowerShell 配置文件 —— 避免被自定义别名或代理设置干扰,也更快
-Force目标已存在时直接覆盖,不再弹交互确认
RunCommand复用第 04 章的管道封装,把 PowerShell 的报错原样带回界面

只挑部分文件打包

「另存为 ZIP」允许在源目录里选一部分文件打进去。文件名列表用 | 分隔传进来,逐个拼成 Compress-Archive -Path 的参数;一个都没选则用通配符打包整个目录:

CPP8 行
while (q0 < fs.size()) {                       // fs 形如 "1.in|2.in|3.in"
    size_t q1 = fs.find('|', q0);
    string name = (q1 == string::npos) ? fs.substr(q0) : fs.substr(q0, q1 - q0);
    if (!name.empty()) { hasFiles = true; items.push_back(wsDir + L"\\" + Utf8ToWstr(name)); }
    if (q1 == string::npos) break;
    q0 = q1 + 1;
}
if (!hasFiles) items.push_back(wsDir + L"\\*");  // 未指定:打包整个目录

保存位置不再靠网页下载,而是弹出系统「另存为」对话框(GetSaveFileNameW + OFN_OVERWRITEPROMPT)让用户直接挑目录与文件名。用户点了取消,接口返回 {"ok":true,"cancel":true} 而不是当成错误 —— 取消是正常操作。

Code date creation(CDC)是作者 starryfast 独立开发的 C++ 图形化数据生成器,GitCode 组织「Code date creation编写」。生成器统一按 C++23 标准编译:随机模式按值域批量造点,自编译模式把你的 AC 代码直接跑成 .out,再一键打包成可提交的 zip —— 从造数据到交题,一个 exe 全包。v8.0.0「幻想」起内置了幻想增强引擎,提供 20 项数据校验与分析能力,全部在本机完成,不联网、不上传。

交流

ACGO 发布帖 B 站空间 272215275@qq.com QQ 272215275 MC gm.rainplay.cn:15415

© 2026 Code date creation编写 · 作者 starryfast · 本站与 cdc.mjhcsp.xyz 同源

市面上的盗版程序可能携带病毒,请仅从本页或官方代码仓获取安装包。