【问题标题】:Detecting a file read in Java [closed]检测用 Java 读取的文件 [关闭]
【发布时间】:2016-05-31 13:38:13
【问题描述】:

检测文件写入或修改很容易,但我想不出检测文件读取的方法。这是场景。

程序 X(我无法控制)读取 Sample.text 并修改它。需要注意的是,程序 X 在 READ 之后立即关闭流。

我要编写一个程序来记录从读取到修改 Sample.txt 的持续时间/时间。例如,程序 X 在下午 5:00 读取 Sample.txt,并在晚上 7:25 对其进行修改,因此总持续时间为 2 小时 25 分钟。

是否有软件包或解决方法来检测程序 X 何时/是否读取了 Sample.txt?请注意 READ 是我想要检测的内容,因为 java.nio.file 可以检测到文件修改。

【问题讨论】:

  • 我会相当惊讶......如果这可能的话;除此之外,如果 jvm 能够提供这样一个真正适用于 java 运行平台的解决方案。
  • 这是用于生产环境还是用于调试?你的用例让我觉得你想知道为什么 X 程序在读取和修改之间需要这么长时间。如果我是对的,你需要的是一个分析器,而不是像 WatchService 这样的 java API(它确实不包含任何观看读取的内容)。
  • 您可以在操作系统级别编写自己的 IO 拦截器,就像杀毒软件一样,并使用 JNI 调用它。不容易,但有可能。但我真的认为你不需要这样的东西。

标签: java database eclipse windows multithreading


【解决方案1】:

听起来BasicFileAttributeslastAccessTime 之一就是您要找的。​​p>

【讨论】:

    【解决方案2】:

    我希望这可以帮助 -

    1. 在 Program X 中跟踪文件读取时间。
    2. 始终将读取时间存储在数据库中。
    3. 一旦文件被修改,找出记录的读取时间和修改时间之间的差异。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-04
      • 2014-07-18
      • 2020-07-24
      • 1970-01-01
      • 2011-06-14
      相关资源
      最近更新 更多