跳到主要内容

第一个读取示例

下面的程序展示轻量检查和完整校验的区别。将 model.vfp 替换为真实文件路径。

from pathlib import Path
from vfp_reader import VfpError, VfpReader

path = Path("model.vfp")

try:
reader = VfpReader.open(path)
info = reader.inspect()
print("网格:", info["gridSize"])
print("文件字节数:", info["fileBytes"])

verified = reader.validate_source()
print("实心体素:", verified["solidVoxelCount"])
print("sourceHash:", verified["sourceHash"])
except VfpError as error:
print("不是可信的 VFP 1.3:", error)
except OSError as error:
print("无法访问文件:", error)

inspect() 会读取 META 以得到 gridSizechunkSize,但不会解压所有体素。validate_source() 的成本更高,因为它要恢复每一个 VOX0 Chunk 并重算 hash;它应被视为“允许业务使用内容”的门槛。

成功后的 verified 是普通字典,可直接写入任务日志。不要把异常信息忽略后继续调用 voxels() 或导出方法。