Java 如果文件已更改,如何才能下载?

Java 如果文件已更改,如何才能下载?,java,Java,我正在制作一个程序,它是一个游戏专用服务器的启动器。如果我更改服务器,我必须更改客户端,因此我希望它只下载更改的文件,而不覆盖旧文件。我正在使用dropbox存储文件。如何执行此操作?使用DB在服务器端维护文件版本,或使用校验和来标识修改后的文件在Java 7中您可以使用 使用此API,您可以注册到各种事件 ENTRY_CREATE – A directory entry is created. ENTRY_DELETE – A directory entry is deleted. ENTRY

我正在制作一个程序,它是一个游戏专用服务器的启动器。如果我更改服务器,我必须更改客户端,因此我希望它只下载更改的文件,而不覆盖旧文件。我正在使用dropbox存储文件。如何执行此操作?

使用DB在服务器端维护文件版本,或使用校验和来标识修改后的文件在Java 7中您可以使用

使用此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.
以下代码段显示了如何为所有三种事件类型注册路径实例:

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,您可以调用适当的通知,通知您的应用程序文件已更改并下载它

我先看一下

我还要确保服务器上的每个文件都有一个与之关联的MD5(其他校验和)。您可以下载这些校验和,并将它们与您在本地计算机上安装的文件进行比较。如果任何校验和不同,则可以下载所需的文件


查看并

在数据库中创建条目,将状态设置为“已修改”并使用“已修改”状态访问文件。大约有1000个文件,我无法做到这一点。您可以将数百万条条目存储在数据库中,手动输入。是否可以更容易地在服务器上生成带有更改的文本文件,下载文件,解释它,然后下载必要的文件?我从来都不知道观察者。真有用的课+1使用文件大小和修改日期可能比计算校验和更快。但这些值不太可靠。修改日期可能受到触摸、安装人员或其他开发商无法控制的因素的影响