开发者社区> 问答> 正文

java 文件夹监控jnotify多次监听Modified:操作报错

在使用java做文件夹监听时遇到了一个问题,就是在监听到一个文件更改时会扫行4次Modified方法,这样我在Modified这个方面里做的文件解析操作也同样执行4次,因为我要监控的文件在10个左右,它每个文件都要执行4次,这样太废资源和时间了啊,有没有什么好的办法监听每个文件的改动只执行一次Modified方法???? 谢谢!

展开
收起
kun坤 2020-06-04 13:19:17 987 0
1 条回答
写回答
取消 提交回答
  • 不是会自动通知你的回调吗? http://jnotify.sourceforge.net/sample.html######

    引用来自“ZYud”的答案

    不是会自动通知你的回调吗? http://jnotify.sourceforge.net/sample.html
    是执行回调了啊,但是一个文件执行了多次回调啊,这样我在回调里写的解析操作要执行多次啊,我想让回调就执行一次啊????? ######jnotify bug很多 我也遇到过,还有rename的问题 我现在改用了jpathwatch,稍微好点 总的来说java的watch service没一个好用的,连jdk7的我也测试了 我觉得这也和linux文件系统设计有缺陷有关######

    引用来自“浪客Dandy”的答案

    jnotify bug很多 我也遇到过,还有rename的问题 我现在改用了jpathwatch,稍微好点 总的来说java的watch service没一个好用的,连jdk7的我也测试了 我觉得这也和linux文件系统设计有缺陷有关
    jpathwatch我也试过一样,监控一个文件的修改也是执行三四次回调,你是怎么解决这个问题的啊 jpathwatch和jnotify都是基于事件驱动的啊,jdk7还没试过。我也试过线程轮寻,不过那个太费资源了啊,如果文件改动比较频繁的话,系统吃不消啊,没办法啊 你用jpathwatch怎么解决执行三四次回调问题的啊 ######

    引用来自“hld_hepeng”的答案

    引用来自“ZYud”的答案

    不是会自动通知你的回调吗? http://jnotify.sourceforge.net/sample.html
    是执行回调了啊,但是一个文件执行了多次回调啊,这样我在回调里写的解析操作要执行多次啊,我想让回调就执行一次啊?????
    open有多个还是什么? 不行你就监控close_write就可以了吗. 请多程序都会这样操作.多次打开文件.不一定是系统的问题. ######

    引用来自“ZYud”的答案

    引用来自“hld_hepeng”的答案

    引用来自“ZYud”的答案

    不是会自动通知你的回调吗? http://jnotify.sourceforge.net/sample.html
    是执行回调了啊,但是一个文件执行了多次回调啊,这样我在回调里写的解析操作要执行多次啊,我想让回调就执行一次啊?????
    open有多个还是什么? 不行你就监控close_write就可以了吗. 请多程序都会这样操作.多次打开文件.不一定是系统的问题.
    我监控的是修改事件啊,好像没有close_write的吧 只有四个回调方法fileRenamed,fileModified,fileDeleted,fileCreated fileCreated和fileDeleted回调时是只执行一次的,但如果一个文件有更改的话会执行多次fileModified回调,我想让这个回调只执行一次???? ######坦白的说我还没找到完美的解决方法,我现在在尝试调用inotifywait 然后解析命令行输出最为结果,还在尝试阶段######

    引用来自“浪客Dandy”的答案

    坦白的说我还没找到完美的解决方法,我现在在尝试调用inotifywait 然后解析命令行输出最为结果,还在尝试阶段
    那可怎么办啊,这个问题也困扰我很久了啊,怎么办呢?? ######只能做个延时处理.或者换种思路.你如果想当文件修改完成时做一些操作的话,不妨有close_write######java的inotify封装就没有带close write的,这主要是因为他们都想统一win mac linux的开发接口 我觉得至少对于linux而言 必须单独做 所以我在尝试inotify tools 说实话 在这方面windows api要强太多了
    2020-06-05 14:26:33
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载