Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.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-检查其他程序是否读取文件?_Java_Io_Read Write - Fatal编程技术网

Java-检查其他程序是否读取文件?

Java-检查其他程序是否读取文件?,java,io,read-write,Java,Io,Read Write,我是否可以检查另一个程序是否读取指定的文件 我想让我的程序监视一个文件,当另一个程序访问它时,它应该运行一些代码。这可能吗?正如一些人提到的,Java new IO为您提供了一些活动的目录/文件: ENTRY\u CREATE–创建目录条目 条目\删除–删除目录条目 条目\修改–修改目录条目 溢出–表示事件可能已丢失或丢弃。您无需注册溢出事件即可接收它 但是,正如您所看到的,它不允许您检测文件是否已被访问。如果真的要这样做,就必须编写一些本机代码 在windows上,您可以使用列出访问文件的

我是否可以检查另一个程序是否读取指定的文件


我想让我的程序监视一个文件,当另一个程序访问它时,它应该运行一些代码。这可能吗?

正如一些人提到的,Java new IO为您提供了一些活动的目录/文件:

  • ENTRY\u CREATE–创建目录条目
  • 条目\删除–删除目录条目
  • 条目\修改–修改目录条目
  • 溢出–表示事件可能已丢失或丢弃。您无需注册溢出事件即可接收它
但是,正如您所看到的,它不允许您检测文件是否已被访问。如果真的要这样做,就必须编写一些本机代码

在windows上,您可以使用列出访问文件的用户。我相信您可以从java程序调用这个命令(比如说每隔几分钟),然后从输出检测文件是否被使用


我很确定其他操作系统也有其他选择。

BasicFileAttributes接口提供了最后一次访问时间。但它无法告诉你哪个程序访问了它。正如其他人所提到的,WatchService也会做同样的事情,但您想做的事情可以通过从这些程序中记录,然后检查这些日志来确定下一步要做什么。

您可以记录它。如果这就是你想要的。这将是一些低级操作系统代码,在JavaAPI中是不可能的。例如:当另一个程序访问声音文件时,我想用Java运行一些代码。我能查一下这个吗?编辑:啊,那太糟糕了。这取决于操作系统,但类似的东西是这样的:API有WatchService进行修改(我认为访问日期不算),但正如@enl8enmentnow所说的,我认为如果你想监视访问,它会降低一点,因为你需要监视文件描述符或类似的东西。不管是哪个程序,因为只有一个程序将访问该文件。我会调查的,谢谢。