Java-检查其他程序是否读取文件?
我是否可以检查另一个程序是否读取指定的文件Java-检查其他程序是否读取文件?,java,io,read-write,Java,Io,Read Write,我是否可以检查另一个程序是否读取指定的文件 我想让我的程序监视一个文件,当另一个程序访问它时,它应该运行一些代码。这可能吗?正如一些人提到的,Java new IO为您提供了一些活动的目录/文件: ENTRY\u CREATE–创建目录条目 条目\删除–删除目录条目 条目\修改–修改目录条目 溢出–表示事件可能已丢失或丢弃。您无需注册溢出事件即可接收它 但是,正如您所看到的,它不允许您检测文件是否已被访问。如果真的要这样做,就必须编写一些本机代码 在windows上,您可以使用列出访问文件的
我想让我的程序监视一个文件,当另一个程序访问它时,它应该运行一些代码。这可能吗?正如一些人提到的,Java new IO为您提供了一些活动的目录/文件:
- ENTRY\u CREATE–创建目录条目
- 条目\删除–删除目录条目
- 条目\修改–修改目录条目
- 溢出–表示事件可能已丢失或丢弃。您无需注册溢出事件即可接收它
我很确定其他操作系统也有其他选择。BasicFileAttributes接口提供了最后一次访问时间。但它无法告诉你哪个程序访问了它。正如其他人所提到的,WatchService也会做同样的事情,但您想做的事情可以通过从这些程序中记录,然后检查这些日志来确定下一步要做什么。您可以记录它。如果这就是你想要的。这将是一些低级操作系统代码,在JavaAPI中是不可能的。例如:当另一个程序访问声音文件时,我想用Java运行一些代码。我能查一下这个吗?编辑:啊,那太糟糕了。这取决于操作系统,但类似的东西是这样的:API有WatchService进行修改(我认为访问日期不算),但正如@enl8enmentnow所说的,我认为如果你想监视访问,它会降低一点,因为你需要监视文件描述符或类似的东西。不管是哪个程序,因为只有一个程序将访问该文件。我会调查的,谢谢。