注册目录位于网络驱动器上时,Java 7 WatchService不会生成事件

Fle*_*phy 5 network-drive java-7 watchservice

我知道这是在一年前在其他地方被问到的,但我正在寻找任何更新.

我在Java 7中有一个程序,它使用WatchService来监视目录,以便在那里创建新文件.如果我在本地机器上注册一个目录(例如c:\ NewFiles),那么一切都很好.然而,当我试图让它听一个网络驱动器上的文件夹时,它编译并运行但直接退出,因为它似乎没有得到任何事件的通知..这里只是我的代码的一个片段...

 private final WatchService watcher;
 private final Map<WatchKey, Path> keys;
        this.watcher = FileSystems.getDefault().newWatchService();
        this.keys = new HashMap<>();
Run Code Online (Sandbox Code Playgroud)

我注册了目录......

String srcDirPath = "G:\\NewFiles";
Path dir = Paths.get(srcDirPath);
    WatchKey key = dir.register(watcher, ENTRY_CREATE, ENTRY_DELETE, ENTRY_MODIFY);
    keys.put(key, dir);
Run Code Online (Sandbox Code Playgroud)

然后在循环结束时检查事件......

        if (keys.isEmpty()) {
                System.out.println("Drive is inaccessible");
                break;
            }
Run Code Online (Sandbox Code Playgroud)

在这里,我总是得到"驱动器无法访问"的警告.我尝试将我的Java文件复制到此网络目录并从那里运行它们但我遇到了同样的问题.

是否可以从本地计算机上运行这样的Watchservice来监听对网络驱动器上目录的更改?我在这里得到了许可或防火墙问题吗?我使用的是Windows 7,很可能网络驱动器也在Windows 7机器上.