我正在尝试处理文件或文件夹的子文件夹中的更改,然后将它们上传到FTP(如同步文件夹),但我不知道如何做到这一点..任何人都可以给我线索或在哪里找到/学习制作它?我宁愿用Java做。
谢谢!
答案 0 :(得分:4)
Watch for Changes in a Directory
摘自本教程:
创建监视服务并注册事件
第一步是使用FileSystem类中的newWatchService方法创建一个新的WatchService,如下所示:
WatchService watcher = FileSystems.getDefault().newWatchService();
接下来,使用监视服务注册一个或多个对象。可以注册实现Watchable接口的任何对象。 Path类实现了Watchable接口,因此每个要监视的目录都被注册为Path对象。
与任何Watchable一样,Path类实现两个寄存器方法。此页面使用双参数版本,注册(WatchService,WatchEvent.Kind ...)。 (三参数版本采用WatchEvent.Modifier,目前尚未实现。)
使用监视服务注册对象时,可以指定要监视的事件类型。支持的StandardWatchEventKinds事件类型如下:
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);