private void btnViewErrorLogFile_Click(object sender, EventArgs e)
{
errorLogFileProcess = Process.Start(AppVars.ErrorLogFilePath);
}
以上打开记事本中的文本文件。它包含我的应用程序的错误日志。
我不想让用户打开此文件的倍数。因此,我不想让他/她再次单击该按钮并打开同一文件的另一个窗口。
如何检查此文件是否已打开?注意:我不想关闭(或所有)notepad.exe进程,因为用户可能会打开记事本进程,而不是我的应用程序文件(在文件打开时使用notepad.exe)。
同样,我如何检查我打开的流程是否已经打开?
答案 0 :(得分:2)
刚刚重新阅读了你的问题。
如果要强制用户在允许它们再次打开之前关闭记事本的活动实例(已启动),请保留errorLogFileProcess
实例,然后在允许命令之前重新检查它。
Process errorLogFileProcess;
private void btnViewErrorLogFile_Click(object sender, EventArgs e)
{
if (errorLogFileProcess != null)
{
// Process was launched previously; check if exited.
if (!errorLogFileProcess.HasExited)
{
throw new Exception("Can't launch until first one closed.");
}
}
errorLogFileProcess = Process.Start(AppVars.ErrorLogFilePath);
}
还可以使用errorLogFileProcess.HasExited
状态来禁用该按钮,以便不会引发Click事件。
答案 1 :(得分:-1)
在此处查看如何检查文件是否已打开(使用try,catch块): Check if a file is open