gpt4 book ai didi

java - 如何使用java Process知道文件是否已关闭

转载 作者:行者123 更新时间:2023-12-04 09:55:21 26 4
gpt4 key购买 nike

我正在执行此命令以使用默认文件查看器打开日志文件:

Process p = Runtime.getRuntime().exec("rundll32 url.dll, FileProtocolHandler F:/Download/MSI3ca79.LOG");

我想知道文件何时关闭。是否可以?
p.waitFor(); // doesn't work because the process is terminated just after the execution.

解决方案:
ProcessBuilder pb = 
new ProcessBuilder("c:/windows/notepad.exe", "F:/Download/MSI3ca79.LOG");
File log = new File(LogFactory.getLogFactory(TestExternProcess.class).getName()); pb.redirectErrorStream(true);
pb.redirectOutput(Redirect.appendTo(log));
Process p = pb.start();
int exitVal = p.waitFor();

最佳答案

说白了,这是不可能的。我不会走这条路。

这取决于特定的应用程序(记事本)打开文件。系统通常不知道应用程序何时停止查看文件。因为什么是关闭文件?它是否正在关闭查看器 UI 中的选项卡?或者清理应用程序为文件分配的内存?在关闭 doc、xls 文件的情况下删除锁定文件?

为此,您需要编写一个程序来控制操作系统和任何可以查看文件的应用程序。

关于java - 如何使用java Process知道文件是否已关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61931587/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com