我可以以某种方式检查另一个程序是否读取指定的文件吗?
我希望我的程序监视一个文件,每当它被另一个程序访问时,它应该运行一些代码。这可能吗?
答案 0 :(得分:1)
正如有些人所提到的,Java new IO让您可以观看某些活动的目录/文件:
但是,正如您所看到的,它不允许您检测文件是否已被访问。如果您真的想要这样做,则必须编写一些本机代码。
在Windows上,您可以列出使用Handle
访问文件的人员。我相信你可以从java程序中调用这个命令(比如说每隔几分钟),然后从输出中检测是否使用了该文件。
我很确定其他操作系统还有替代方案。
答案 1 :(得分:1)
BasicFileAttributes接口提供上次访问时间。但它无法告诉你哪个程序访问它。正如其他人所提到的,WatchService也会做同样的事情,但你可以通过从这些程序中记录来检查你想要做什么,然后检查这些日志以确定下一步该做什么。