使用Java Desktop.open(文件f)并知道应用程序已完成

时间:2012-01-24 14:17:41

标签: java class process desktop

似乎使用Java Desktop.open(文件f)打开一个文件,其中包含与用户桌面相关联的默认应用程序,但不会向我提供有关用户何时完成此文件的信息。当用户真正完成这个子进程时,怎么会发现?有没有比每隔一段时间检查文件大小更优雅的东西 - 这只会告诉我文件已被保存。

2 个答案:

答案 0 :(得分:3)

如果您想查看文件/目录以了解其他流程所做的更改,那么Java Watch Service API就适合您。此API应该可以帮助您查看文件/目录,并在其他进程触及时收到通知。

答案 1 :(得分:0)

我认为您无法使用Desktop.open进行检查。我建议在引入Desktop类之前使用该方法。比你可以遵循这个过程,并在过程结束时触发......

 Runtime rt = Runtime.getRuntime();
 Process proc = rt.exec(the app and file here);

注意:在这个回答之后,GETah发布了一个更好的建议(我投票了)。我也会留下这个答案,因为在某些情况下,这可能足够且容易被阻止。