【发布时间】:2022-01-24 11:51:56
【问题描述】:
最近,我正在处理一个需要管理数千个小文件的项目。整个系统将随机读取/写入这些文件。其中一部分是在需要时从网络下载的。由于性能和系统限制,我只能保留 10~20 个文件描述符/句柄。所以我决定创建一个大的单个文件作为我的“磁盘”。然后动态读写文件到里面。
这是我的设计:
- 用于序列化元信息的文件头
- 保存每个小文件偏移量的索引
- 一堆“预分配段”来保存文件
- 支持多线程访问
最后,它看起来像一个虚拟文件系统。但我不确定在 Android 和 iOS 上同时读/写同一个文件是否安全。而且我完全不知道如何管理我的“预分配段”的片段。
是否有任何我可以参考的最佳实践或框架?我走对了吗?
【问题讨论】:
-
SQLite 不是一个选项。因为我只有 10MB 的额外内存可用。
标签: android ios file operating-system filesystems