我是一个Java应用程序,我需要同步两个用户选择的目录Source和Target的内容(简单的本地计算机应用程序,无需考虑任何文件系统或服务器内容和其他内容)。该应用程序应将所有新文件和更改过的文件从源复制到目标,并删除不在源中但在目标中的所有文件。同步过程需要显示进度条并且可以取消。

我想我必须完全编写删除部分,但是其他行为与OS功能相同,可以将文件从一个目录复制到另一个目录,因此,我可以通过使用已经存在的功能来节省很多工作那里。问题是,我不知道如何从Java访问它。

因此,如果您选择一些文件并将它们拖到文件夹图标上,那么我如何使Java执行与大多数操作系统相同的操作?

最佳答案

您可以使用Java的WatchService监视目录中的更改。由于您使用的是两个目录,因此您需要同时查看两个目录中的更改。

对于进度条和拖放操作,您将需要JavaFX或Swing。

尝试与本机OS调用进行通信将很困难-并且如果可能,取决于平台。此外,您将需要知道OS是否实际上将这些功能暴露给非OS代码。

09-10 09:04
查看更多