如何根据任何文件(位于特定目录下,如果目录基础正在观看)尝试打开任何特定文件/目录?

时间:2018-05-28 03:26:35

标签: java file file-watcher

我想执行几个基于任务的开放目标文件OPEN event例如,我正在关注Sample.docx&每当用户选择 OPEN 时,将根据 OPEN 操作执行后续任务。

我搜索了 internet &找出一些解决方案,但这是基于文件的 MODIFICATION&删除 操作。其中没有一个根据OPEN 动作显示,这实际上是我正在寻找的。

任何提示/建议都会对我有所帮助。 感谢。

2 个答案:

答案 0 :(得分:0)

这是一个特定于操作系统的功能,并不是Java自带的开箱即用功能。如果您使用的是Windows,则可以使用.NET中存在的background-color: transparent;,但如果您需要使用Java,则必须创建本机绑定(如果没有已存在的库)。机会是不存在的,因为没有多少人会有一个有效的用例来执行此操作,我不认为安全人员会很高兴看到这一点。

答案 1 :(得分:0)

我可以假设,在特定的线程中,定期轮询当前正在运行的进程,以查看文件名是否包含在进程标题中。

对于.docx文件,例如,WORD会将此作为其进程标题:

Sample.docx - Microsoft Word

您需要使用名为getAllWindowNames()的JNA方法来获取窗口名称列表。这种方法效果很好。在获取的列表中检测到 Sample.docx 时,启动您喜欢的任何文件。

但请记住,您的Java应用程序需要始终在后台运行,并且由于文件关联(如前一篇文章中所述),此技术将运行与 Sample相关联的文件。 docx ,无论文件的运行方式如何(在Windows资源管理器中双击,桌面上的快捷方式,从MS WORD本身打开等)。

我实际上已经创建了一个小型的演示应用程序,它完全符合您要完成的任务,但它太大而无法在此处发布。对于这类事情,没有我知道的教程,只是这样做的事情......就好像这个概念对你有用。

是的!... 大多数人们不希望这种事情在他们的系统上跳舞。