Skip to main content

pack_folder

Function pack_folder 

Source
pub fn pack_folder(
    root: &Path,
    progress: Option<ProgressFn<'_>>,
) -> Result<PackedFolder>
Expand description

把 root 目录打包成容器载荷。

§内存

载荷是整个目录的内容拼接,会全部读进内存。这与 core 其他部分 按块处理的风格不一致,但容器格式本身要求先知道每个文件的区间才能 写索引,而区间要等前面所有文件都读完才确定。

调用方应对大目录做预检——ContainerIndex 里有 crate::container::RECOMMENDED_MAX_ENTRIES 可参考。

§Errors

  • 根路径不是目录
  • 索引构建失败(路径组件非法等,由 ContainerBuilder 校验)

单个文件读不出来不算错误,会记进 skipped 继续—— 一个打不开的文件不该让整个目录加密失败。