java - 如何仅在文件发生更改时才下载该文件?

标签 java

我正在制作一个程序,作为游戏私有(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/

相关文章:

java - 如何将列表中的多种类型传递给函数?

Java jar getResource 在 linux 中不工作

java - 如何保留一个并删除其他重复的 arrayList 对象并更新另一个对象属性?

java - 通过拆分和运行将 ListenableFuture<Iterable<A>> 转换为 Iterable<ListenableFuture<B>>

java - MyBatis 枚举用法

java - BufferedReader 在实时读取时打印输入

java - 带有连接池示例的 ClassNotFoundException (org.postgresql.Driver)

java - JPA : Inheritance - Discriminator value not taken into account in generated SQL

java - 检查空格和 isempty

java - 绕 x 轴翻转一维阵列板表示