我需要监视多个文件夹以获取新文件通知。我尝试了一个目录,它工作得很好
我的文件夹结构类似于路径。获取(“c:\users\Test”);路径path1=路径。获取(“c:\users\test1”);路径路径2=路径。获取(“c:\users\test2”);
public static void watchOutBoundDirectory(Path path) {
String newFile = null;
try {
Boolean isFolder = (Boolean) Files.getAttribute(path, "basic:isDirectory", NOFOLLOW_LINKS);
if (!isFolder) {
throw new IllegalArgumentException("Path: " + path + " is not a folder");
}
} catch (IOException ioe) {
// Folder does not exists
ioe.printStackTrace();
}
// We obtain the file system of the Path
FileSystem fs = path.getFileSystem();
try (WatchService service = fs.newWatchService()) {
path.register(service, ENTRY_CREATE);
WatchKey key = null;
while (true) {
key = service.take();
Kind<?> kind = null;
for (WatchEvent<?> watchEvent : key.pollEvents()) {
kind = watchEvent.kind();
if (OVERFLOW == kind) {
continue;
} else if (ENTRY_CREATE == kind) {
Path newPath = ((WatchEvent<Path>) watchEvent).context();
Path fullPath = path.resolve(newPath);
String newFile = fullPath.toString();
}
}
if (!key.reset()) {
break; // loop
}
}
} catch (IOException ioe) {
ioe.printStackTrace();
} catch (InterruptedException ie) {
ie.printStackTrace();
}
}
我尝试将每个目录注册到watcher。WatchKey key1=路径1。注册(观察者、条目和创建);WatchKey key2=路径2。注册(观察者、条目和创建);我想在程序启动时监视多个文件夹中的传入事件。并行监视文件夹,直到我停止程序。如何实施?
提前谢谢。请帮忙,请帮忙
如果要监视多个文件夹,我认为一个好的解决方案将是使用多线程程序,每个线程将监视一个文件夹。
while (true) {
....
}
因为您有一个无限循环,一旦调用watchOutBoundDirectory静态函数。除非禁用监视程序,否则它将永远不会脱离范围。
因此,要么为每个路径使用多线程,要么传递一个路径数组来watchOutBoundDirectory,并检查同时(true)范围内的每个路径。
问题内容: 有谁知道如何设置可触发PMU通过以下方式监视多个(类型)事件的结构? 像一样,它具有两种不同的事件类型(PERF_TYPE_HARDWARE和PERF_TYPE_SOFTWARE),但是在perf_event_open的联机帮助页上的示例中,只能分配单个值。 任何建议将不胜感激,谢谢! 20170208更新 感谢@gudok为我指明方向,但结果似乎有些异常。如下所示的演示程序(用于测量
问题内容: 我正在使用God(一个Ruby gem)监视我的Redis服务器。但是,我现有的服务器可能已经有一个redis up实例。如何确定它监视已经启动的 现有Redis服务器 进程? 这是我的上帝文件,用于redis: 问题答案: 要回答这个问题: 我在我的God文件中放入了w.pid_file =“ SOMETHING”,并确保在Redis的配置文件中也设置了此PID文件。
问题内容: 我只能通过FTP访问远程服务器上的目录,并且希望在目录中出现新文件后立即获取它们。 是否有FAM for Python之类的东西可以让我通过FTP监视新文件? 问题答案: 如果轮询服务器是一种选择:
本文向大家介绍node.js 如何监视文件变化,包括了node.js 如何监视文件变化的使用技巧和注意事项,需要的朋友参考一下 fs.FSWatcher fs.FSWatcher类 继承了 EventEmitter,用于监视文件变化,调用 fs.watch 后返回一个 fs.FSWatcher 实例,每当指定监视的文件被修改时,实例会触发事件调用回调函数 fs.watch() fs.watch(f
问题内容: 我想在目录中监视来自C应用程序的新文件。但是,我对修改后的文件不感兴趣,仅对新文件感兴趣。目前,我为此目的使用readdir / stat: 知道如何在不保留文件列表的情况下检测 Linux和Solaris 10 上新创建的文件吗? 问题答案: 解决方案是将最后访问时间存储在全局变量中,并使用过滤器选择最新文件: : 统计信息(由路径扩展,但这仅是详细信息) 统计信息(由路径扩展,但这
在使用监视器的餐饮哲学家实现中,为什么提出()操作两次调用test()操作?