使用CFileDialog打开文件时如何捕获异常

时间:2019-01-21 07:00:06

标签: c++ visual-c++ mfc

当我要打开的文件被其他进程或应用程序使用或打开时,我需要捕获一个异常。 我正在使用MFC的CFileDialog's DoModal打开所选文件的列表。但是,当我在“打开文件”对话框中选择一个文件后单击“打开”时,会出现一个小的弹出对话框,指出所选的文件正在由另一个应用程序使用。 DoModal方法仅返回(带有成功或失败代码),即在“打开文件”对话框关闭后返回。因此,我不知道在打开文件对话框打开后在哪里插入代码来检查是否无法打开所选文件。

CFileDialog fd (TRUE, NULL, _T("*.pid"), OFN_FILEMUSTEXIST | OFN_HIDEREADONLY);
if (fd.DoModal() == IDOK)
{
    //Get selected filenames 
} 

当我双击选择一个文件或在OpenFileDialog窗口中单击“打开”按钮时,我想插入一个AfxMessageBox呼叫。

1 个答案:

答案 0 :(得分:3)

使用虚拟功能CFileDialog::OnShareViolation

您还可以删除OFN_SHAREAWARE并使用CFileDialog::OnFileNameOK进行检查