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机器上.
| 归档时间: |
|
| 查看次数: |
912 次 |
| 最近记录: |