如何在使用 CFileDialog 打开文件失败时捕获异常
How to catch an exception when opening a file with CFileDialog fails
当我要打开的一个或多个文件正在使用或被其他进程或应用程序打开时,我需要捕获异常。我正在使用 MFC 的CFileDialog's DoModal
打开所选文件的列表。但是,当我在"打开文件"对话框中选择一个文件后单击"打开"时,会出现一个小的弹出对话框,指出所选文件正被另一个应用程序使用。 DoModal
方法仅返回(成功或失败代码),即在"打开文件"对话框关闭后。所以我不知道在哪里插入代码来检查打开文件对话框时是否无法打开所选文件。
CFileDialog fd (TRUE, NULL, _T("*.pid"), OFN_FILEMUSTEXIST | OFN_HIDEREADONLY);
if (fd.DoModal() == IDOK)
{
//Get selected filenames
}
我想在双击以选择文件或单击打开文件对话框窗口中的"打开"按钮时插入AfxMessageBox
调用。
使用虚拟函数 CFileDialog::OnShareViolation。
您也可以删除OFN_SHAREAWARE
并与CFileDialog::OnFileNameOK
进行自己的检查
相关文章:
- 两个线程一个使用流 Api,另一个线程创建文件失败并出现错误ERROR_SHARING_VIOLATION
- 成功的生成文件失败,在 CLion 中出现"identical" CMake
- 谷歌测试读写同一文件失败
- 复制文件成功,移动文件失败,参数相同 - C++
- 驱动器号上的查找文件失败,但在路径上传递
- C++使用命令行输入 txt 文件,但打开文件失败
- 编译 C++ 文件失败,因为找不到"ssize_t"的定义
- 如何在使用 CFileDialog 打开文件失败时捕获异常
- Clang 3.8 使文件失败
- 查找下一个文件失败,出现空格字符
- 十六进制数组 cout 到文本文件失败
- 使用 WriteFile 将 RegQueryValueEx 值写入文件失败
- FSCTL_GET_RETRIEVAL_POINTERS对于小文件失败
- C++ 在使用ifstream时,在Apache下运行的CGI文件失败
- 生成文件失败,错误没有规则来设定目标
- 使用创建文件打开网络文件失败,并显示FILE_NOT_FOUND
- cmake - 单元测试++链接单元测试二进制文件失败
- 通过终端和编译创建项目文件失败,但通过Qt Creator IDE工作正常
- 在Swift代码中调用C++函数时读取文件失败
- Nacl:为***打开文件失败-5