是否可以在本地保存文档时将本地word文档编辑器上的编辑同步到其中央存储库文档(db文档)?

时间:2013-04-22 06:54:46

标签: java version-control ms-word sync

我需要在MSWord文档管理(或任何Text Doc Editor)上实现一个java应用程序,并且word文档将存储在数据库或服务器等中央存储库中。许多用户将处理文档,需要完整的版本控制。所做的所有编辑/更改都应保存在中央文档中。

我的问题是,是否可以在本地文档编辑器上打开并编辑后在中央文档(位于数据库中)保存更改?我的意思是,在访问和编辑中央文档时文档,我认为他们将在本地副本上执行此操作,文档保存操作如何将该更改同步到中央副本?有没有办法通过代码实现它,比如保存事件触发器

用户在副本中所做的所有更改都应在中央副本上更新。我打算在这种情况下实现谷歌文档的工作。邀请您提出宝贵的建议和有用的链接吗?

2 个答案:

答案 0 :(得分:1)

在Java中你可以listen to the File System and get notifications when files change所以理论上你可以使用它来查看文档的编辑时间并将其上传到服务器。

但是你需要解决这些问题:

  • 如果Java应用程序在Word打开时关闭/崩溃,则没有任何内容会检测到保存,用户对其文档的更改将丢失,并且没有任何指示原因。
  • 人们在编辑时始终保存Word文档,以免丢失数据,但他们只希望将最终保存作为修订版本。
  • 多个用户同时编辑同一文档并覆盖彼此的更改。
  • 在静默自动过程中,用户无法输入描述其更改的注释。

最好是手动登记/退房上传/下载过程,而不是尝试自动完成。

答案 1 :(得分:1)

这是我要考虑的:

A(在您的案例中为Java)GUI应用程序,它显示中央存储库中的文档,并允许启动要编辑的Word(或其他),然后检出并锁定存储库中的文档。然后,当Word(或其他)进程退出时,将提交更改(可能在弹出确认对话框之后,用户可以选择放弃编辑,或者需要输入有关其更改的注释),并删除文件上的存储库锁定。 / p>

然后你还需要一些机制来处理过时的锁(例如,当用户PC关闭/崩溃而不释放锁时)。一定要使用适用于二进制文件的VCS,它支持服务器端的文件锁定,并对应用程序进行编码,这样如果您的第一选择不理想,您可以轻松更改VCS软件。

因此,您的Java应用程序可能通过执行其他程序(用于检出/锁定/提交的VCS二进制文件,用于编辑的GUI应用程序)来完成大部分工作。虽然该应用程序看起来相当简单,但查看Netbeans RCPEclipse RCP之类的内容可能仍然值得,并在这样的平台上构建您的应用程序。我自己并没有真正使用它们,所以把它作为一个考虑和研究的想法,而不是作为推荐。