我正在制作一个程序,它是游戏私人服务器的启动程序。如果我更改服务器,我必须更改客户端,所以我希望它只下载更改的文件,并且不要覆盖旧文件。我正在使用Dropbox来存储文件。我怎么能这样做?
答案 0 :(得分:4)
在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,您可以向应用程序调用适当的通知,告知文件已更改并下载
答案 1 :(得分:1)
使用DB维护服务器端的文件版本,或者使用校验和来识别修改后的文件
答案 2 :(得分:0)
首先来看看Dropbox SDK
我还要确保服务器上的每个文件都有一个与之关联的MD5(其他校验和)。您可以下载这些校验和,并将它们与您在本地计算机上安装的文件进行比较。如果任何校验和不同,那么您可以下载所需的文件。
查看How can I generate an MD5 hash?和How do I generate an MD5 digest for a file