如何调用操作系统功能以将文件复制到文件夹



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

删除部分我想我将不得不完全编写,但其他行为与将文件从一个目录复制到另一个目录的操作系统功能相同,因此我可以通过使用已经存在的功能为自己节省大量工作。问题是,我不知道如何从 Java 访问它。

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

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

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

尝试与本机操作系统调用进行通信将是困难的,如果可能的话,取决于平台。此外,您需要知道操作系统是否实际上将这些功能公开给非操作系统代码。

Apache fileutils确实有很多方便的方法来处理复制文件。使用 Apache FileUtils.copyDirectory(...) 检查此线程进度条以获取一些灵感

/比约恩

最新更新