Я пишу приложение 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 и только во втором цикле через , а
.