边界情况处理
空目录
- 打包:允许打包空目录,生成仅含头部 + 压缩后的空载荷的
.ttp文件 - 解包:输出空目录(无文件)
无子文件夹的目录
自动降级为扁平模式,即使未指定 --flat。
文件数量 > 65535
扁平模式下必须启用 ExtInfo(自动检测或 --ext-info 强制),使用 uint64 文件数字段。
单文件 ≥ 4 GiB
扁平模式下必须启用 ExtInfo,使用 ZIP64 式扩展长度字段。
超大文件(4 GiB ~ 2^63 - 1)
目录树模式下 offset/size 以 字符串 形式存储于 JSON 中,不受 JSON Number 精度限制。
文件名为空或包含特殊字符
文件名以 UTF-8 字节存储,无额外转义。实现应支持任意 Unicode 字符,但不应包含 \0。
中段分卷缺失
扫描分卷时发现断层(如 001、002、004 存在,003 缺失),当前行为是静默停止于缺失处。解包器应警告预期卷数与实际卷数不匹配。
自定义数据段缺失(HasCustom=1 但数据不存在或长度不足)
解包器应检测到载荷长度不足并报错,避免越界读取。
压缩流损坏
解压时如果数据损坏,相应的解压函数应抛出异常,解包器捕获后报错退出。
目录树模式下 offset/size 字符串格式
JSON 中的 "o" 和 "s" 为十进制数字字符串(如 "21474836480"),解包时需 int() / parseInt() 转换为整数。
