Как поймать исключение при открытии файла с CFileDialog не удается - PullRequest
0 голосов
/ 21 января 2019

Мне нужно поймать исключение, когда файл или файлы, которые я собираюсь открыть, используются / открываются или открываются другими процессами или приложениями.Я использую MFC CFileDialog's DoModal, чтобы открыть список выбранных файлов.Однако, когда я нажимаю «Открыть» после выбора файла в диалоговом окне «Открыть файл», появляется небольшое всплывающее диалоговое окно, в котором говорится, что выбранный файл используется другим приложением.DoModal метод возвращает только (либо с кодом успеха, либо с кодом ошибки), т.е. после закрытия диалога открытия файла.Поэтому я не знаю, куда вставить код, чтобы проверить, нельзя ли открыть выбранный файл при открытом диалоге открытия файла.

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

Я бы хотел вставить вызов AfxMessageBox, когда ядважды щелкните файл, чтобы выбрать файл, или нажмите кнопку «Открыть» в окнах OpenFileDialog.

1 Ответ

0 голосов
/ 21 января 2019

Используйте виртуальную функцию CFileDialog :: OnShareViolation .

Также вы можете удалить OFN_SHAREAWARE и выполнить собственную проверку с помощью CFileDialog::OnFileNameOK

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...