代码之家  ›  专栏  ›  技术社区  ›  Jared

如何在Java中接收Windows文件系统事件?

  •  7
  • Jared  · 技术社区  · 17 年前

    windows supports file system events

    有人在JVM中接收Windows文件系统事件的经验吗?如果是这样,你使用过的最佳实践、模式和/或库是什么?

    一个快速的谷歌出现了 this library

    6 回复  |  直到 17 年前
        1
  •  7
  •   Bill the Lizard    13 年前

    我认为这是Java 7更可用时的关键特性之一。Sun的示例代码 blog on Java 7:

    导入静态java.nio.file。StandardWatchEventKind.*;

    Path dir = ...;
    try {
        WatchKey key = dir.register(watcher, ENTRY_CREATE, ENTRY_DELETE, ENTRY_MODIFY);
    } catch (IOException x) {
        System.err.println(x);
    }
    
        2
  •  2
  •   dB.    15 年前

    适用于Java 6或更早版本 JNA 的com.sun.jna.platform.win32.FileMonitor。

        3
  •  1
  •   Draemon    17 年前

    如果你能完全避免它,我建议你不要使用本机代码库。你的场景有什么要求,以至于你不能进行背景线程轮询?

        4
  •  1
  •   Community Mohan Dere    9 年前

    Brian Agnew对JNotify的建议很好: Is there a sophisticated file system monitor for Java which is freeware or open source?

    描述来自 http://jnotify.sourceforge.net/

    JNotify是一个java库,允许java应用程序监听文件系统事件,例如:

    • 文件已创建
    • 文件修改
    • 文件的改名
        5
  •  1
  •   Ritesh    14 年前

        6
  •  0
  •   John Doe    16 年前

    如果不使用Jdk7,则必须使用JNI。