Проблема При Удалении Директории.

4ygynOK

New Member
07.10.2013
1
0
#1
Существует функция для удаления директории:
Код:
BOOL DeleteDir(DWORD B_Id)
{
ASSERT(m_pDatabaseMng);
if (!m_pDatabaseMng)
return FALSE;

try
{
std::list<DWORD> lstIds;

CString sSQL;
sSQL.Format(_T("SELECT ID FROM BUGO WHERE PARENT_ID=%d"), B_Id);

ADODB::_RecordsetPtr spRS = m_pDatabaseMng->OpenRecordset(sSQL);
long nRecordCount = spRS->GetRecordCount();

for (long nRecord = 0; nRecord < nRecordCount; ++nRecord)
{
lstIds.push_back((long)spRS->GetFields()->GetItem(_T("ID"))->GetValue());
spRS->MoveNext();
}

spRS->Close();

for (std::list<DWORD>::iterator it = lstIds.begin(); it != lstIds.end(); ++it)
if (!DeleteDir(*it))
return FALSE;

sSQL.Format(_T("DELETE FROM BUGO WHERE ID=%d"), B_Id);
VERIFY(m_pDatabaseMng->ExecuteSQL(sSQL));
return TRUE;
}
catch (_com_error& e)
{
if(AfxMessageBox(CString(_T("Удаление каталога невозможно!\n")) + (LPCTSTR)e.Description()+ CString(_T("\nПродолжить удаление?")),MB_OKCANCEL)== IDYES);
}

return FALSE;
}
На данный момент происходит следующее если мы не можем удалить директорию, то вываливается сообщение из catch при нажатии на кнопку ОК удаляются все каталоги до достижения условия if (!DeleteDir(*it)).
Теперь вопрос как мне сделать так чтобы при нажатии на кнопку ОК у меня удалялись все возможные директории, а не до первой, которую невозможно удалить. А при нажатии на ОТМЕНА происходило то что и сейчас(т.е удаление до первой директории которую нельзя удалить).
Прошу помощи уважаемые...