我正在制作一个程序,作为游戏私有(private)服务器的启动器。如果我更改服务器,我必须更改客户端,所以我希望它只下载更改的文件,而不覆盖旧文件。我正在使用 dropbox 来存储文件。我怎样才能做到这一点?
最佳答案
在 Java 7 中,您可以使用 WatchService 获取通知
使用此 API,您可以注册各种事件
ENTRY_CREATE – A directory entry is created.
ENTRY_DELETE – A directory entry is deleted.
ENTRY_MODIFY – A directory entry is modified.
OVERFLOW – Indicates that events might have been lost or discarded. You do not have to register for the OVERFLOW event to receive it.
以下代码片段展示了如何为所有三种事件类型注册 Path 实例:
import static java.nio.file.StandardWatchEventKinds.*;
Path dir = ...;
try {
WatchKey key = dir.register(watcher,
ENTRY_CREATE,
ENTRY_DELETE,
ENTRY_MODIFY);
} catch (IOException x) {
System.err.println(x);
}
使用 WatchEvent,您可以向您的应用程序调用适当的通知来通知文件已更改并下载它
关于java - 如何仅在文件发生更改时才下载该文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12174948/