Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用JDK 7区分文件删除和目录删除?_Java_Java 7_Nio_Filesystemwatcher_Delete File - Fatal编程技术网

Java 如何使用JDK 7区分文件删除和目录删除?

Java 如何使用JDK 7区分文件删除和目录删除?,java,java-7,nio,filesystemwatcher,delete-file,Java,Java 7,Nio,Filesystemwatcher,Delete File,我正在使用JDK 7的WatchService监视目录 ENTRY\u DELETE事件告诉我一个条目已被删除。我可以通过类似以下操作获得该条目的名称: WatchEvent<Path> ev = cast(event); Path name = ev.context(); Path child = dir.resolve(name); WatchEvent ev=cast(事件); 路径名=ev.context(); 路径子项=目录解析(名称); 我想知道删除的条目是文件还是文

我正在使用JDK 7的WatchService监视目录

ENTRY\u DELETE
事件告诉我一个条目已被删除。我可以通过类似以下操作获得该条目的名称:

WatchEvent<Path> ev = cast(event);
Path name = ev.context();
Path child = dir.resolve(name);
WatchEvent ev=cast(事件);
路径名=ev.context();
路径子项=目录解析(名称);
我想知道删除的条目是文件还是文件夹。当然,我尝试了
child.isDirectory()
,但是没有成功,因为元素已经不存在了


在没有启发式的情况下,是否有任何方法可以判断删除的元素是文件还是目录?

不幸的是,由于WatchService构建在本机操作系统的文件事件服务之上,因此它受到本机服务提供的信息的限制。Linux确实指出删除了哪种类型的文件系统对象,但Microsoft只是给出了名称。

是的,我想这可能就是它得到的全部,但我想它可能会在启动时扫描目录结构或类似的东西,使它能够在事件发生时从文件夹中分辨文件。我看到您提到的是一个.net FileSystemWatcher,但我使用的是Java。据我所知,这个.net监视程序有“重命名”事件,JDK 7的NIO2.0监视服务不支持这些事件。你的答案与.net有关吗?如果无法从文件夹中删除文件,我将不得不表现得好像两者都发生了一样——我的一个操作将失败,我将忽略这一点。