Диалог сохранения файла MFC

Я пишу приложение MFC C ++ , в котором есть кнопка «Сохранить как» для сохранения ] .txt файл на диск. С его помощью я пытаюсь добавить дополнительную проверку на перезапись файла (если файл с таким же именем файла существует, он должен запросить пользователя, хочет ли он перезаписать старый файл или нет. Я пробовал это с помощью приведенного ниже кода, но на самом деле он не работает. Когда я нажимаю "Нет" в MessageBox, диалоговое окно "Сохранить как файл" должно открываться повторно, но вместо этого возникает две ошибки: первая - Утверждение отладки не выполнено , второе - Обнаружен неправильный аргумент . Как мне сделать это лучше? Это код:

char strFilter[] = { "Text Files (*.txt)|*.txt|" }; 

    CFileDialog FileDlg(FALSE, CString(".txt"), NULL, 0, CString(strFilter)); 

    while(true)
    {
        if( FileDlg.DoModal() == IDOK ) // this is the line which gives the errors
        {
            agendaName = FileDlg.GetFileName(); //filename
            agendaPath = FileDlg.GetFolderPath(); //filepath (folders)

            if(model->agendaExists(CSToString(agendaPath+TEXT("\\")+agendaName))) // there is another file called the same way
            {
                if(MessageBox(TEXT("A file with the specified name already exists. Overwrite?"), TEXT("File exists"), MB_YESNO) != 6) // user clicked NO (do not overwrite file)
                {
                    continue;
                }

            }

            model->sendToFile(CSToString(agendaPath+TEXT("\\")+agendaName));  // the file is unique so the agenda named agendaName found at path agendaPath is saved
            return;
        }
    }

Следует отметить, что ошибки возникают в строке 7 и только во втором цикле через , а .

5
задан Adrian Marinica 12 May 2011 в 08:19
поделиться