【问题标题】:Incremental online backup using Delphi使用 Delphi 进行增量在线备份
【发布时间】:2012-08-09 14:26:44
【问题描述】:

我正在尝试在我们的 Delpi 项目中实现一项新功能,该功能将帮助我们的用户在我们的服务器上进行在线备份,因此我使用 Indy FTP 组件构建了一个将上传/下载用户文件或文件夹的表单

但我需要提供进行增量备份的能力。我们的用户只能将“新”差异上传到他们的文件和文件夹。因此,例如,如果我有一个大小为 5 KB 的文本文件,并且我向其中添加了价值额外 2 KB 的文本,那么备份将只上传那些额外的 2 KB 而不是整个 7 KB

那么有人可以推荐任何方法,算法开始吗?

感谢您的宝贵时间

注意:我们使用的是 Delphi 7

【问题讨论】:

  • 找到一个做差异和修补的库。然后使用它。
  • 你要备份什么?常规文件?数据库?主要是二进制?文字?
  • @DavidHeffernan 尝试在网上搜索 Diffing 和修补库,但找不到任何库,所以对任何库有任何建议/建议吗?
  • 你没有在delphi中实现RSYNC,你只是调用它。它是一个命令行实用程序,最初是在 Unix 上找到的,但可以作为 windows 端口使用(仍然只是一个命令行实用程序)。您可以在 delphi 中为其编写自己的 GUI 包装器。
  • 正如沃伦所说。只需包装 rsync。使用正确的参数调用 rsync.exe,它应该可以工作。记得检查退出代码。当你想实现一个进度条时,你可以读取 rsync 的 stdout/stderr。

标签: windows delphi backup delphi-7


【解决方案1】:

有一个Microsoft Delta Compression API 可以让你进行差异化和修补,但是我之前研究过这条路线,发现使用 rSync 或 robocopy 是一条更容易的路线 - 特别是因为它很难应用补丁/除非您构建自己的自定义 FTP 服务器,否则从服务器端更改。

【讨论】:

  • 我可以在 Delphi 下找到 rSync / robocopy 的代码示例/组件的任何想法
  • 您只需启动一个可执行文件并在 delphi 中捕获其输出。 rsync 可执行文件是一个命令行实用程序,您可以通过从以下位置获取安装程序来安装它:sourceforge.net/projects/sereds/files/cwRsync
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-10
  • 1970-01-01
  • 2015-07-19
  • 2019-03-07
  • 2011-05-23
  • 1970-01-01
相关资源
最近更新 更多