Java 如何获取主文件夹的文件和子文件夹中的更改?

Java 如何获取主文件夹的文件和子文件夹中的更改?,java,sync,Java,Sync,我正在尝试处理文件或文件夹子文件夹中的更改,然后像同步文件夹一样通过FTP上传这些更改,但我不知道如何操作。。任何人都可以给我线索,或者在哪里找到/学习制造它?我宁愿用Java来做 谢谢 本教程摘录: 创建监视服务并注册事件 第一步是使用FileSystem类中的newWatchService方法创建一个新的WatchService,如下所示: WatchService watcher = FileSystems.getDefault().newWatchService(); 接下来,向wat

我正在尝试处理文件或文件夹子文件夹中的更改,然后像同步文件夹一样通过FTP上传这些更改,但我不知道如何操作。。任何人都可以给我线索,或者在哪里找到/学习制造它?我宁愿用Java来做

谢谢

本教程摘录:

创建监视服务并注册事件

第一步是使用FileSystem类中的newWatchService方法创建一个新的WatchService,如下所示:

WatchService watcher = FileSystems.getDefault().newWatchService();
接下来,向watch服务注册一个或多个对象。任何实现可监视接口的对象都可以注册。Path类实现了Watchable接口,因此要监视的每个目录都注册为Path对象

与任何可观察对象一样,Path类实现两个register方法。此页面使用两个参数版本,registerWatchService,WatchEvent.Kind。。。。三参数版本采用WatchEvent.Modifier,该修饰符当前未实现

向watch服务注册对象时,指定要监视的事件类型。支持的StandardWatchEventTypes事件类型如下:

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);
本教程摘录:

创建监视服务并注册事件

第一步是使用FileSystem类中的newWatchService方法创建一个新的WatchService,如下所示:

WatchService watcher = FileSystems.getDefault().newWatchService();
接下来,向watch服务注册一个或多个对象。任何实现可监视接口的对象都可以注册。Path类实现了Watchable接口,因此要监视的每个目录都注册为Path对象

与任何可观察对象一样,Path类实现两个register方法。此页面使用两个参数版本,registerWatchService,WatchEvent.Kind。。。。三参数版本采用WatchEvent.Modifier,该修饰符当前未实现

向watch服务注册对象时,指定要监视的事件类型。支持的StandardWatchEventTypes事件类型如下:

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);

如果答案对你有帮助,请接受,因为如果其他人比你有同样的问题,那么他们会更容易找到答案。如果答案对你有帮助,请接受,因为如果其他人比你有同样的问题,那么他们会更容易找到答案。