mirror of
https://gitee.com/Vancouver2017/luban-lite.git
synced 2025-12-25 05:28:55 +00:00
1.3 KiB
1.3 KiB
ZIP文件系统库
功能概述
本库提供两种处理ZIP文件的方式:
- ZIP文件系统:将ZIP文件或包含zip文件的块设备挂载为虚拟文件系统
- ZIP文件读取器:直接读取ZIP文件内容
ZIP文件系统
接口函数
int zipfs_mount(const char *zip_path, const char *mount_point);
int zipfs_unmount(const char *mount_point);
注意事项
- 非线程安全,多线程环境需要外部加锁
- 挂载点必须是空的目录
- 只读访问
ZIP文件读取器
接口函数
struct aic_zip_reader *aic_zip_reader_open(const char *source);
int aic_zip_reader_read(struct aic_zip_reader *reader,
struct aic_file_info file_info,
void *buffer);
void aic_zip_reader_close(struct aic_zip_reader *reader);
注意事项
- 在打开ZIP读取器后,必须手动调用aic_zip_reader_close关闭读取器
- 可以在zip_reader.h中通过修改宏READ_BUF_SIZE调整读取缓冲区大小
- 读取大文件时内部会自动流式,但是要注意提供的buffer要大于或等于文件大小
- 不支持加密ZIP和ZIP64格式
示例程序
项目包含两个演示程序:
zip_fs_demo.c: ZIP文件系统使用示例zip_reader_demo.c: ZIP文件读取器使用示例
依赖
- RT-Thread: 实时操作系统