我正在开发一个 C# 应用程序,它需要将给定报告文件的所有连续修订存储到单个项目文件中:每次(纯文本)报告文件更改时,都应附加新版本的内容到项目文件,以及一些元数据。其他要求:
- 报告文件的每个版本为 100 kB 到 1 MB。理论上,最大修改次数是没有限制的,但实际上应该小于 1000。
- 为简单起见,我想避免计算报告修订之间的差异 - 只需在每次更改时将整个报告存储到项目文件中即可。
- 项目文件应该被压缩——它不需要是一个文本文件
- 从应用程序中检索给定版本的报告应该很容易
我怎样才能有效地实现它?我应该创建自定义二进制文件、考虑使用数据库还是其他想法?
非常感谢,盖伊。
最佳答案
简单的工作流程有什么问题?
- 解压缩文件
- 附加标题和新报告
- Gzip 项目文件
Gzip 是一种标准格式,因此很容易访问。后续报告可能不会有太大变化,因此您将获得很好的压缩率。要归档每份报告,只需打开文件并扫描标题即可。 (如果扫描不起作用,还要将元数据镜像到 SQLite 数据库中,并确保将偏移量包含到项目文件中,以便您可以快速找到正确的位置。)
如果您的要求很灵活(例如,“应追加”部分)并且您只是想要一些东西来跟踪文件的过去版本,revision control system将轻松完成您需要的所有工作。
关于c# - 将文本文件的多个修订存储到单个文件的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3276675/